add_definitions(-DFOO -DBAR ...) # add_compile_definitions定义宏,这种方式可以给宏具体值,但是这个指令只要高版本的cmake支持 等价C语言中 #define MG_ENABLE_OPENSSL 1 add_compile_definitions(MG_ENABLE_OPENSSL=1) # 打印消息 message(消息) # 编译子文件夹的CMakeLists.txt add_subdirectory(子文件夹...
add_subdirectory(subproject) 使用add_subdirectory指令时,CMake 会在指定的子目录中查找CMakeLists.txt文件,并执行其中的命令,让 CMake 构建系统继续构建子项目。这使得你可以将一个大型项目分解为多个较小的子项目,从而使项目的组织结构更加清晰。 在我们的示例中,这个命令将导致 CMake 在构建过程中进入subproject目...
#主 CMakeLists.txtadd_subdirectory(src)# src/CMakeLists.txtset(SOURCES main.cpp file1.cpp file2.cpp )# 排除 file2.cpplist(REMOVE_ITEM SOURCES file2.cpp)add_executable(MyApp${SOURCES}) 5. 使用set_target_properties排除 可以通过目标属性控制文件是否参与构建。 示例: add_executable(MyApp main....
# 添加子目录,该目录为子目录,会调用子目录的cmake文件,进行构建库 add_subdirectory(src) 1. 2. 3. 4. 5. 6. src/main.cpp的主要内容为: #include <hello.h> //这里通过安装的位置引用,以此达到调用外部库的实验 int main() { helloFunc(); return 0; } 1. 2. 3. 4. 5. 6. 7. 8. 从...
ADD_SUBDIRECTORY(main) 用以递归的调用main中的MakeLists.txt ADD_SUBDIRECTORY(util) 用以递归的调用util中的MakeLists.txt 3)util目录里面的CMakeLists.txt是用以定义生成util静态库的规则,其中内容如下: SET(LIBRARY_OUTPUT_PATH${HELLO_SOURCE_DIR}/lib) 定义了库生成的路径,LIBRARY_OUTPUT_PATH是一个内部变...
add_subdirectory(sub_directory) # 进入子目录按照子目录的CMakeLists.txt编译 设置链接库目录 link_directories( ${CMAKE_CURRENT_SOURCE_DIR}/libs ) # 或者 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -l${CMAKE_CURRENT_SOURCE_DIR}/libs") ...
#add_subdirectory(路径) 引入路径下的 cmakeList # 源文件 最终生成的 soadd_library(变量名ASHAREDB.c)add_library(变量名ASTATICB.c)# 源文件 最终生成的 so 多文件设置file(GLOB变量名SRCCsrc/main/cpp/*.c src/main/cpp/*.cpp) add_library(变量名A SHARED ${SRCC}) ...
PROJECT(server_project)#定义工程名称MESSAGE(STATUS"Project: SERVER")#打印相关消息消息MESSAGE(STATUS"Project Directory: ${PROJECT_SOURCE_DIR}")SET(CMAKE_BUILE_TYPEDEBUG)#指定编译类型SET(CMAKE_C_FLAGS_DEBUG"-g -Wall")#指定编译器ADD_SUBDIRECTORY(utility)#添加子目录ADD_SUBDIRECTORY(server)...
add_library(MathFunctionsadd_func.cxx) 然后在顶层的CMakeLists.txt添加子目录路径,再链接子目录编译出来的库。添加库使用add_subdirectory,链接库使用target_link_libraries。在顶层的CMakeLists.txt添加如下: add_subdirectory(MathFunctions)target_link_libraries(tutorialPUBLICMathLibs)target_include_directories(tutori...
#主CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(MyProject) # 添加子目录 add_subdirectory(library_a) add_subdirectory(library_b) add_subdirectory(app) 2. 在子目录中创建CMakeLists.txt以编译成库 在每个子目录中创建一个CMakeLists.txt文件,并使用add_library()指令来编译成库。例如,...