项目结构(Project Structure): ProjectRoot/├── CMakeLists.txt├── lib/│ ├── CMakeLists.txt│ └── library.cpp└── app/├── CMakeLists.txt└── main.cpp 根目录CMakeLists.txt: cmake_minimum_required(VERSION 3.10)project(ComplexProject)# 包含lib和app目录add_subdirectory(lib)a...
cmake_minimum_required (VERSION 2.6) project (Project) include_directories ("${PROJECT_SOURCE_DIR}/Project") add_subdirectory (Dependency) add_executable (Project main.cpp) target_link_libraries (Project Dependency) add_dependencies(Project Dependency) Dependency ,档案 CMakeLists.txt : project(Depend...
cmake_minimum_required(VERSION 3.12) project(MyProject) # 添加依赖项 add_subdirectory(dependency) # 编译可执行文件 add_executable(MyProject main.cpp) # 添加对依赖项的引用 add_dependencies(MyProject DependencyTarget) # 链接依赖项 target_link_libraries(MyProject DependencyTarget) ...
add_library(<name> ALIAS <target>) ## Interface Libraries 我不知道 add_library(<name> INTERFACE [IMPORTED [GLOBAL]]) add_dependencies ## 添加顶级target对其他顶级target的依赖。 add_dependencies(<target> [<target-dependency>]...) 顶级target是指用以下命令创建的:add_executable(),add_library(),...
#cmake最低版本需求 cmake_minimum_required(VERSION 3.13) #项目名称 project(cmake_study) #相关设置用set函数 set(CMAKE_CXX_STANDARD 11) #生成的可执行文件的名称 add_executable(cmake_study src/main.cc) 在Linux环境使用CMake的构建和编译流程如下: step1. 编写CMake的配置文件——CMakeLists.txt。
1,CMAKE_SOURCE_DIR、PROJECT_SOURCE_DIR、<projectname>_SOURCE_DIR 不论采用何种编译方式,这三个变量都指的是工程顶层目录。 2,CMAKE_CURRENT_SOURCE_DIR 指的是当前处理的 CMakeLists.txt 所在的路径。 3,PROJECT_NAME 返回通过 PROJECT 指令定义的项目名称。 4,CMAKE_MODULE_PATH 这个变量用来定义自己的 ...
project(myProject C CXX):该命令会影响PROJECT_SOURCE_DIR、PROJECT_BINARY_DIR、PROJECT_NAME等变量。另外要注意的是,对于多个project嵌套的情况,CMAKE_PROJECT_NAME是当前CMakeLists.txt文件回溯至最顶层CMakeLists.txt文件中所在位置之前所定义的最后一个project的名字。
cmake的编译顺序,与add_subdirectory的顺序相关(前提:在没有任何编译依赖的情况下,这个后面会介绍到),比如上述的工程,在某些环境还是能编译过的。但是如果 CMakeLists.txt 内容修改为如下,是编译不过的 cmake_minimum_required(VERSION 3.5) project(learn2) ...
add_dependencies添加target的依赖。 add_executable添加构建二进制执行。 add_library添加构建lib库。 add_subdirectory添加构建的二级目录,一般在top的CMakeLists.txt中使用,用于将其他CMakeLists.txt包含进build工程,使用相对目录。 add_testaux_source_directory将某个目录下的所有源码文件赋值给一个变量。避免每次增加...
project(MyApp) add_library( native-lib SHARED src/main/cpp/native-lib.cpp ) # 引入依赖库 add_library( dependency-lib STATIC IMPORTED ) set_target_properties( dependency-lib PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/libs/dependency-lib.a ...