add_subdirectory(source_dir):用于将子目录添加到生成中。source_dir中也有一个CMakeLists.txt文件。C...
我们上面例子中使用了绝对路径INCLUDE_DIRECTORIES(/usr/include/hello)来指明include路径的位置,我们还可以使用另外一种方式,使用环境变量export CMAKE_INCLUDE_PATH=/usr/include/hello CMake 语法 (1)ADD_LIBRARY 语法 ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) hello:就是正常的库名,生成的名字前面会加上lib,...
include_directories(${PROJECT_SOURCE_DIR}/include) # 这里将子目录条件到工程,并指定编译的输出产物,默认输出产物保存到build/src文件夹下, # 如果不指定可行文件保存路径同样也会保存到该路径下 add_subdirectory(src) # 上面定义了将src子目录加入工程,并指定编译输出(包含编译中间结果)路径为 # bin目录。如果...
--add_subdirectory(src)意思是可以向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制的存放位置(subdirectory字母就是子目录的意思,所以意思是:这里指定src目录下存放了源文件,当执行cmake时,就会进入src目录下去找src目录下的CMakeLists.txt,所以在src目录下也建立一个CMakeLists.txt),官方用法是...
find_package(CURL REQUIRED)include_directories(${CURL_INCLUDE_DIR})target_link_libraries(curltest${CURL_LIBRARY}) 为了能支持各种常见的库和包,CMake自带了很多模块。可以通过命令 cmake –help-module-list (输入cmake –help,然后双击Tab会有命令提示)得到你的CMake支持的模块的列表:直接查看模块路径。比如...
link_directories("/home/server/third/lib") 3. 宏定义 CMakeLists.txt 之 多重判断宏定义 比如设置为 CPU_ONLY add_definitions(-DCPU_ONLY) 它相当于 g++ 命令的 -D 选项的作用(-DCPU_ONLY),用于宏定义。 4. 添加子文件夹 使用add_subdirectory ...
PUBLIC_HEADER DESTINATION include # 头文件安装路径 ) LIBRARY, ARCHIVE, RUNTIME, PUBLIC_HEADER是可选的,可以根据需要进行选择。 DESTINATION后面的路径可以自行制定,根目录默认为CMAKE_INSTALL_PREFIX,可以试用set方法进行指定,如果使用默认值的话,Unix系统的默认值为 /usr/local, Windows的默认值为 c:/Program ...
in CMake, What's the difference between command SUBDIRS() and ADD_SUBDIRECTORY() 263 What is the difference between include_directories and target_include_directories in CMake? 2 cmake: Include directories root? 68 cmake: add_subdirectory() vs include() 0 include directories in CM...
include_directories会对当前CMakeLists.txt文件的目标文件生效,并会通过add_subdirectory调用传递到子目录;target_include_directories则针对指定的目标文件生效。 target_include_directories对于指定目标添加的目录,有三种范围可选,PUBLIC、PRIVATE和INTERFACE。INTERFACE和PUBLIC会添加到<target>的INTERFACE_INCLUDE_DIRECTORIES属...
include_directories(sub) add_subdirectory(sub output) add_executable(test main.cpp) target_link_libraries(test sub) # 父目录下的main.cpp #include "test.h" #include <iostream> int main(int argc, char** argv) { std::cout << "In main..." << std::endl; ...