只有库名,cmake会自动去所包含的目录搜索link_libraries(iconv)# 传入变量link_libraries(${RUNTIME_LIB})# 也可以链接多个link_libraries("/opt/MATLAB/R2012a/bin/glnxa64/libeng.so" "/opt/MATLAB/R2012a/bin/glnxa64/libmx.so")
CMake支持大写、小写、混合大小写的命令。 当编译一个需要第三方库的项目时,需要知道: 去哪找头文件(.h),-I(GCC) INCLUDE_DIRECTORIES() 去哪找库文件(.so/.dll/.lib/.dylib/...),-L(GCC) LINK_DIRECTORIES() 需要链接的库文件的名字:-l(GCC) LINK_LIBRARIES(库名称即可) 1. 添加头文件目录 INCLUDE...
target_link_libraries (hello_mongoc PRIVATE mongo::mongoc_shared) ## 添加头文件目录INCLUDE_DIRECTORIES ##它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用。 # include_directories(../include) ##添加需要链接的库文件目录LINK_DIRECTORIES ##它相当于g++命令的-...
从中可以看到的是包含目录并不是从本地文件来的,而是从系统路径搜索,因此需要配置共享库的路径和链接路径,因此主要的工作在src/CMakeLists.txt的文件中 链接共享库和共享头文件 # 添加包含目录,否则编译不通过 include_directories(/home/ubuntu/work/usr/include/hello) # 包含目录添加后,编译通过但是链接出错,main...
,可以通过以下步骤完成: 1. 首先,在CMakeLists.txt文件中找到对应的目标(target)。 2. 使用include_directories命令来添加头文件文件夹路径。该命令用于指定...
最后一个指令 target_include_directories 就是添加编译需要用到的头文件了,第一个参数和上一个指令add_executable 一样是 hello_headers 这里我的理解是上一条指令指明了生成可执行文件需要的资源文件,这条指令指明了需要的头文件的目录。关于 PRIVATE 关键字的使用在该例中没有讲解,我去查了一下官网的文档,这里...
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include/sample")#告诉CMake:工程的头文件目录 为工程添加源文件 FILE (GLOB SOURCE_all "src/*.cpp") #将src文件夹下的所有cpp文件添加到 SOURCE_all 变量中 SOURCE_GROUP("source" FILES ${SOURCE_all})#在目录结构中添加source文件夹,文件夹下添加变量SOURCE_al...
2. 检查C++版本,添加c++标准支持(Optional) 3. 添加工程名称(可任取) 4. 设置编译模式 4. 添加子目录 5. 添加头文件 6. 添加源代码路径 7. 创建共享库/静态库 8. 链接库文件 9. 编译主函数,生成可执行文件 CMakeLists.txt例子 最近在做C++的项目,需要用到CMake来做编译,现在系统的总结一下CMakeLists...
1. 多目录下,头文件路径包含 2. 项目依赖关系设置 3. 发现的一些问题 本文涉及到的CMake命令:project(name) : 设置project的名字为name。add_dependencies:设置依赖关系 add_subdirectory:添加子目录 add_executable:添加可执行文件 add_library:添加库 cmake_minimum_required:设置cmake最低版本...