add_subdirectory(source) # source目录下必须要有CMakeLists.txt include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) add_executable(main ${CMAKE_CURRENT_SOURCE_DIR}/samples/sample_add.cpp) target_link_libraries(main add) # add库在build/source目录下,此add库由source目录下的CMakeLists.txt生成...
可以看到,add_library 一行中已经添加了很多的cpp 文件, 有些还在第二级的子目录。 解决办法: 可以通过file指令搜索出所有后缀名为".cpp"的文件,然后添加到项目中,新的CMakeLists.txt修改如下: cmake_minimum_required(VERSION3.4.1) set(CMAKE_CXX_STANDARD11) file(GLOB_RECURSE native_srcs src/main/cpp/*...
string(REGEX REPLACE ".+/(.+)\\..*" "\\1" exe ${file}) # 通过正则表达式,选择.cpp的文件名 add_executable(${exe} ${file}) # 添加可执行文件,${file}为源文件路径 message(\ \ \ \ --\ src/${exe}.cpp\ will\ be\ compiled\ to\ bin/${exe}) # 终端打印添加信息 endforeach (...
有时编译程序时想添加一些编译选项,如-Wall,-std=c++11等,就可以使用add_compile_options来进行操作。 这里以一个简单程序来做演示。 6.1 简单程序 6.1.1 项目结构 6.1.2 示例代码 main.cpp #include <iostream> int main(void) { auto data = 100; std::cout << "data: " << data << "\n"; ret...
add_library(my_cpp_library SHARED ${SOURCES}) # 创建一个共享库,名为 my_cpp_library 1. 2. 代码解释: file(GLOB SOURCES "src/*.cpp")表示将 src 目录下所有以.cpp结尾的文件赋值给SOURCES变量。 add_library(my_cpp_library SHARED ${SOURCES})表示创建一个名为my_cpp_library的共享库,并使用SOURCE...
变量前缀,用于存储冲突的依赖信息。如果在两个不同的目录中发现同名的两个文件,则依赖关系是冲突的。冲突文件名的列表存储在_FILENAMES中。对于每个文件名,为该文件名找到的路径列表保存在_中。 EXECUTABLES <executable_files>: 要读取依赖项的可执行文件列表。这些可执行文件通常是用add_executable()创建的,但它们...
CMake是一个主要用于CPP的构建工具。CMake语言是平台无关的中间编译工具。同一个CMake编译规则在不同系统平台构建出不同的可执行构建文件。在Linux产生MakeFile,在Windows平台产生Visual Studio工程等。CMake旨在解决各平台的不同Make工具的产生的差异(比如GNU Make, QT的qmake,微软的nmake, BSD的pmake)。 其实除了...
例如:target_sources(test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/source/add.cpp) 3、搜索命令 搜索命令可以将某个目录中的所有源文件放在一个变量中,这个变量可以在生成目标或链接源文件时通过 ${ } 使用这个值使用,而不用依次列举文件名。 ① file 命令:可以用于搜索指定目录中特定格式的文件并将其放入一个变...
cmake set(MODULE_NAME MyModule) set(SOURCES src1.cpp src2.cpp) 使用add_library创建MODULE库:然后,你可以使用add_library命令来创建MODULE库。你需要指定库的名字,类型(在这个例子中是MODULE),以及源文件。 cmake add_library(${MODULE_NAME} MODULE ${SOURCES}) 指定库的输出目录:最后,你可能需要指定库的...
cpp md5.cpp ) link_libraries(lib_demo) add_executable(demo main.cpp ) # link library in static mode target_link_libraries(demo libuuid.a) 另外,使用cmake生成makefile之后,make edit_cache可以编辑编译选项。 不熟悉的命令可以去查找文档,贴个目前最新的cmake3.19官方帮助文档地址 https://cmake.org/...