Cmake Windows 64位是一款专业的编译工具,支持多种语言的编译,主要用于构建、测试和打包软件,还可以编译出独立的配置文件,非常实用。小编带来的是Cmake 64位下载,需要的朋友赶快来本站下载吧!
Cmake使用教程
一、HelloWorld
首先创建一个test1文件夹,里面创建一个main.c文件,内容如下:
#include
int main()
{
printf("Hello World!\n");
return 0;
}
再创建一个CMakeLists.txt
PROJECT (HELLO)
SET(SRC_LIST main.c)
ADD_EXECUTABLE(hello ${SRC_LIST})
第一行:设置项目名称;
第二行:将SRC_LIST值设置为main.c
第三行:生成可执行文件 hello。 ${} 是引用某个值。
Terminal中cd进入到test1目录,创建一个build目录用于外部构建(编译所产生的文件都生成在build目录),依次执行下面三条命令:
cmake ..
make
./hello
得到的结果如下:
如果要引用内部库的话,比如是关于SDL和opengl的程序,需要在CMakeLists.txt中添加
TARGET_LINK_LIBRARIES(hello SDL)
TARGET_LINK_LIBRARIES(hello GLU)
对应终端的编译命令就是:
-lSDL -lGLU
若不是引用内部库,则需要将相应目录添加进来,用到的是INCLUDE_DIRECTORIES命令。
二、库的构建与安装
这次我们的目标是:
1,建立一个静态库和动态库,提供 HelloFunc 函数供其他程序编程使用,HelloFunc 向终端输出
Hello World 字符串。
2,安装头文件与共享库。
目录安排如下:
build-用于外部编译;
libhello-hello库的源文件;
src-主程序
首先看libhello里的文件:
/*filename:hello.h*/
#ifndef DBZHANG_HELLO_
#define DBZHANG_HELLO_
void hello(const char* name);
#endif //DBZHANG_HELLO_
/*filename:hello.c*/
#include
#include "hello.h"
void hello(const char * name)
{
printf ("Hello %s!\n", name);
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
set(LIB_SRC hello.c)
add_library(libhello STATIC ${LIB_SRC})
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
set_target_properties(libhello PROPERTIES OUTPUT_NAME "hello")
install(TARGETS libhello
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
install(FILES hello.h DESTINATION include/hello)
src文件夹
/*filename:main.c*/
#include "hello.h"
int main()
{
hello("Jack");
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
include_directories(${PROJECT_SOURCE_DIR}/libhello)
set(APP_SRC main.c)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
add_executable(main ${APP_SRC})
target_link_libraries(main libhello)
最外面的CMakeLists.txt
project(HELLO)
add_subdirectory(src)
add_subdirectory(libhello)
解释:
除build目录外每一个目录都要建立一个CMakeLists.txt.
生成库的语句:add_library(libhello STATIC ${LIB_SRC})
这条语句是建立静态库,若要建立动态库的话将STATIC改成SHARED.
install命令负责库的安装。
make一下,结果就像这样:
再sudo make install.
安装好库之后,我们在想使用hello方法的时候,只要添加头文件#include就可以了,编译的时候
g++ main .c -o main -lhello
就可以引用我们编译好的库了。
Cmake 64位特色
CMake 的组态档取名为 CmakeLists.txt。
Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。
这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
Cmake 64位功能
CMake可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。
CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。
CMake 也支持静态与动态程式库的建构。
CMake这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。