add_dependencies添加target的依赖。 add_executable添加构建二进制执行。 add_library添加构建lib库。 add_subdirectory添加构建的二级目录,一般在top的CMakeLists.txt中使用,用于将其他CMakeLists.txt包含进build工程,使用相对目录。 add_testaux_source_directory将某个目录下的所有源码文件赋值给一个变量。避免每次增加...
add_definitions(-DFOO -DBAR ...) 使用示例: add_definitions(-DWIN32) add_dependencies:使顶级目标依赖于其他顶级目标,以确保它们在该目标之前构建。这里的顶级目标是由add_executable,add_library或add_custom_target命令之一创建的目标。 使用示例: add_custom_target(mylib DEPENDS ${MYLIB}) add_executable...
在这个过程中,CMake会处理CMakeLists.txt文件中的指令,如add_executable、add_library、target_link_libraries等,并将这些指令转换为Makefile中的目标、依赖和命令。 例如,如果我们有如下的目录结构: project/ ├── CMakeLists.txt ├── main.cpp └── module/ ├── CMakeLists.txt └── module.cpp...
add_executable(MyApp ${SOURCE_FILES}) # 调用自定义宏,为 MyApp 添加 MSVC 常用编译选项 add_msvc_options(MyApp) # 为特定目标设置头文件目录 target_include_directories(MyApp PRIVATE include) # 链接静态库 find_library(STATIC_LIB libStatic.lib PATHS "${CMAKE_SOURCE_DIR}/libs/static") target_link...
这个开关用来控制默认的库编译方式,如果不进行设置,使用 ADD_LIBRARY 并没有指定库 类型的情况下,默认编译生成的库都是静态库。 如果SET(BUILD_SHARED_LIBS ON)后,默认生成的为动态库。 3,CMAKE_C_FLAGS 设置C 编译选项,也可以通过指令 ADD_DEFINITIONS()添加。
add_library( hello_shared SHARED ${libhello_src}) add_library( hello_static STATIC ${libhello_src}) # 按照一般的习惯,静态库名字跟动态库名字应该是一致的,只是扩展名不同; #即:静态库名为 libhello.a; 动态库名为libhello.so ; # 所以,希望 "hello_static" 在输出时,不是"hello_static",而是...
使用上面提到的 ADD_SUBDIRECTORY(src bin) 指令可以更改这个变量的值。 使用SET(EXECUTABLE_OUTPUT_PATH <新路径>) 并不会对这个变量造成影响,该 SET 指令仅修改了最终目标 文件存放的路径。 5. CMAKE_CURRENT_LIST_FILE 指代调用本变量的 CMakeLists.txt 的完整路径 ...
PROJECT_NAME cmaketest TARGET all)message("build command:${BUILD_COMMAND_LINE}")message("using compiler ${CMAKE_CXX_COMPILER}")add_executable(test main.cpp) build command:/usr/bin/make -i "all" using compiler /usr/bin/c++ // main.cppintmain(intargc,char*argv[]){intn =5.5f;autofunc...
CMAKE_LIBRARY_PATH:环境变量; CMAKE_CURRENT_SOURCE_DIR:当前处理的CMakeLists.txt文件所在路径; CMAKE_CURRENT_BINARY_DIR:target编译目录; 使用ADD_SURDIRECTORY指令可以更改该变量的值; SET(EXECUTABLE_OUTPUT_PATH < dir >) 指令不会对该变量有影响,但改变了最终目标文件的存储路径; ...
find_library来查找一个库 find_package来查找并加载来自外部项目的设置 find_path来查找包含指定文件的目录 find_program来查找一个程序 你可以使用--help-command命令行开关来打印任何 CMake 内置命令的文档到屏幕上。 检测Python 解释器 本食谱的代码可在github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-03...