(4) FIND_PROGRAM(<VAR> name1 path1 path2 …) VAR变量代表包含这个程序的全路径。 (5)FIND_PACKAGE(<name> [major.minor] [QUIET] [NO_MODULE] [[REQUIRED|COMPONENTS] [componets …]]) 用来有调用预定义在CAMEK_MODULE_PATH下的FIND<name>.cmake模块,你也可以自己定义FInd<name>模块,通过SET(CMAK...
cmake_minimum_required(VERSION 3.8 FATAL_ERROR) PROJECT(HELLO) # 设置头文件路径: INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/include") LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib) # 生成可执行文件 ADD_EXECUTABLE(${PROJECT_NAME} main.cpp) # 链接 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PROJECT...
ADD_EXECUTABLE(Executable program name ${ Source files })到这里,一个可执行程序就生成了。如果要管理依赖第三方库的工程,就需要加入一些额外指令。除此之外,还有一些Cmake中重要的变量和语句需要掌握,才能使用起来得心应手。在下面列出:五、重要的变量 #Cmake版本 CMAKE_SYSTEM_VERSION #可执行文件的输出...
include(FindmoduleName) # 从 CMAKE_MODULE_PATH 包含的路径中搜索 FindmoduleName.cmake 文件 #第二种这样子找 find_package(moduleName REQUIRED) # 从 CMAKE_MODULE_PATH 包含的路径中搜索 FindmoduleName.cmake 文件 与 include () 两者的效果是一样的! 1. 2. 3. 4. 5. 6. 总结3:include与macro...
PROJECT(output_binary_nameCXX) 四、高级特性 - 在线下载编译工程 ExternalProject在构建时从另一个项目填充内容。这意味着在构建主项目之前,本地没有其他项目的库。首先需要add_dependencies()声明,ExternalProject才会下载,配置或构建。最主要外部下载引用是 ExternalProject_Add,功能很强大,支持不同的地址去获取依赖,可...
1#include <Python.h>2#include <sstream>34intmain(intargc,char*argv[])5{67std::wstringstream wss;8wss << argv[0];9Py_SetProgramName(wss.str().c_str());10Py_Initialize();11PyRun_SimpleString("from time import time,ctime\n"12"print('Today is',ctime(time()))\n");13Py_Finalize...
ADD_DEPENDENCIES(target-name depend-target1 depend-target2 ...) 如果两个targets有依赖关系(通过target_link_libraries解决)并且依赖库也是通过编译源码产生的。这时候一句 add_dependencies 可以在直接编译上层target时,自动检查下层依赖库是否已经生成。没有的话先编译下层依赖库,然后再编译上层target,最后 link depe...
使用find_package命令: 对于一些常用库,CMake提供了对应的Find<PackageName>.cmake模块或<PackageName>Config.cmake模块,可以使用find_package命令自动找到这些库并创建对应的导入目标。例如: #如果你想静态链接就加上这句代码,否则就是动态链接。每个库的变量不一样,请自己查找。
最后一行TARGET_LINK_LIBRARIES(${PROJECT_NAME} mylib)说明要链接mylib这个动态库。 那么到哪个目录下去查找相应的头文件和库文件呢? 通过这两行来指定查找目录: 代码语言:javascript 复制 # 头文件路径INCLUDE_DIRECTORIES(./include)# 库文件路径LINK_DIRECTORIES(./lib) ...
cmake 变量定义 name=… set(name, “…”) 环境检测 find_library(lib libname pathllist) find_package(packename...install(DIRECTORY dirs…) 条件语句 if(my) else(my) endif(my) while(condition) endwhile(condition) 执行外部命令...target_link_libraries(myprogram path/curl.so) 使用find_package...