add_library(生成库),target_link_libraries(生成目标连接的库),set_target_properties 生成静态库: add_library(libsugan ${SRC_LISTS}) #用${SRC_LISTS}生成静态库libsugan 或 ADD_LIBRARY(static_lib STATIC ${DIR_SUB_SRCS}) 生成动态库(加SHARED ): add_library(libsugan SHARED ${SRC_LISTS}) #用$...
例如,使用add_executable或add_library命令创建目标时,可以将源文件列表变量作为参数传递。 示例:使用SRC_LIST变量创建一个可执行文件app。 cmake add_executable(app ${SRC_LIST}) 在上述例子中,${SRC_LIST}会被替换为add.c div.c main.c mult.c sub.c,从而将这些源文件编译成名为app的可执行文件。 指定C+...
使用aux_source_directory把当前目录下的源文件存列表存放到变量SRC_LIST里; 然后在add_executable里调用SRC_LIST(注意调用变量时的写法)。 3.1.2.3 运行查看 再次执行cmake和make,并运行main: 可以看到运行成功了。 aux_source_directory()也存在弊端,它会把指定目录下的所有源文件都加进来,可能会加入一些我们不需...
auxsourcedirectory(dir VAR) 发现一个目录下所有的源代码文件并将列表存储在一个变量中。aux_source_directory(. SRC_LIST)add_library(demo ${SRC_LIST})4.3 自定义搜索规则 file(GLOB SRC_LIST "*.cpp" "protocal/*.cpp")add_library(demo ${SRC_LIST})#或者file(GLOB SRC_LIST "*.cpp")file(GLOB ...
add_executable(${PROJECT_NAME} ${SRC_LIST}) message(${PROJECT_NAME}) 1. 2. 3. 4. 5. 6. 7. 8. 9. 示例三:将hello.c生成一个库来调用 如果将hello生成成一个库来调用的话只需要在事例二的基础上修改一下CMakeLists.txt文件再进行编译。
ADD_EXECUTABLE(hello ${SRC_LIST}) 编译得到的全部文件: 编译时所看到的编译Log打印如下: 4、cmake的语法 1)CMAKE_MINIMUM_REQUIRED关键字 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) // 指定限定的最小的cmake版本,可省略 2)PROJECT关键字 PROJECT(HELLO) // 指定工程的名字,并且支持所有语言 ...
使用aux_source_directory把当前目录下的源文件存列表存放到变量SRC_LIST里; 然后在add_executable里调用SRC_LIST(注意调用变量时的写法)。 3.1.2.3 运行查看 再次执行cmake和make,并运行main: 可以看到运行成功了。 aux_source_directory()也存在弊端,它会把指定目录下的所有源文件都加进来,可能会加入一些我们不需...
aux_source_directory (test_func1 SRC_LIST1) add_executable (main main.c ${SRC_LIST} ${SRC_LIST1}) 这里出现了一个新的命令:include_directories。 该命令是用来向工程添加多个指定头文件的搜索路径,路径之间用空格分隔。 因为main.c里include了testFunc.h和testFunc1.h,如果没有这个命令来指定头文件所...
aux_source_directory(src SRC_LIST) 1. 注意,aux_source_directory命令不会递归地查找目录中的子目录。如果需要添加多个目录中的源文件,可以使用多个aux_source_directory命令,或者使用file(GLOB)命令来查找并添加文件。同时,由于aux_source_directory命令会将指定目录中的所有源文件添加到一个变量中,因此不适合用于大...
#先直接设置SRC_LIST的值set(SRC_LISTadd.h add.cpp)#然后再在SRC_LIST中追加main.cppset(SRC_LIST${SRC_LIST}main.cpp)# 第二种用法,设置库生成目录或者可执行文件生成目录set(LIBRARY_OUTPUT_PATH${PROJECT_SOURCE_DIR}/lib/linux)set(EXECUTABLE_OUTPUT_PATH${PROJECT_SOURCE_DIR}/bin) ...