CmakeLists

set() 在CmakeLists中可以设置变量,变量值类型是string

aux_source_directory(${PROJECT_SOURCE_DIR} SRC)

PROJECT_SOURCE_DIR:执行cmake时后面携带的路径 CMakeLists.txt对应的路径

file(GLOB SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)

CMAKE_CURRENT_SOURCE_DIR执行cmake时后面携带的路径 CMakeLists.txt对应的路径

include_directories(${PROJECT_SOURCE_DIR}/include) 指定头文件的路径

include_directories(include)

动态库:libxxx.so SHARED 有可执行权限

静态库:libxxx.a STATIC

发布给客户需要给include 和库文件

如果使用的静态库, libcalc.a 可被打包到生成的可执行文件当中,动态库里面的数据不会打包到可执行文件里面,当程序一启动,可执行文件和静态库都会被加载到内存中,但是动态库不会,动态库只是执行到的时候才会被加载到内存中

target_link_libraries(app calc) 写到CmakeLists.txt最后,动态库在物理内存只保存一份

cmake_minimum_required(VERSION 3.15)
project(test)
set(LIBPATH &{PROJECT_SOURCE_DIR}/lib)
set(EXECPARH ${PROJECT_SOURCE_DIR}/bin)
set(HREADPATH ${PROJECT_SOURCE_DIR}/include)
set(CALCLIB calc)
set(SORTLIB sort)
set(APPNAME1 app1)
set(APPNAME2 app2)
#给当前节点添加子目录
add_subdirectory(calc)
add_subdirectory(sort)
add_subdirectory(test1)
add_subdirectory(test2)


cmake_minimum_required(VERSION 3.15)
project(calc)

#搜索源文件
aux_source_directory(./ SRC)
include_directories(${HREADPATH})
set(LIBRARY_OUTPUT_PATH ${LIBPATH})
add_library(${CALCLIB} STATIC ${SRC})


cmake_minimum_required(VERSION 3.15)
project(sort)
#搜索源文件
aux_source_directory(./ SRC)
include_directories(${HREADPATH})
set(LIBRARY_OUTPUT_PATH ${LIBPATH})
add_library(${SORTLIB} STATIC ${SRC})


cmake_minimum_required(VERSION 3.15)
project(test1)
#搜索源文件
aux_source_directory(./ SRC)
include_directories(${HREADPATH})
link_directories(${LIBPATH})
link_libraries(${CALCLIB})
set(EXECUTABLE_OUTPUT_PATH ${EXECPARH})
add_executable(${APPNAME1} ${SRC})


cmake_minimum_required(VERSION 3.15)
project(test1)
#搜索源文件
aux_source_directory(./ SRC)
include_directories(${HREADPATH})
set(SORTLIB sort)
link_directories(${LIBPATH})
link_libraries(${LIBSORT})
set(EXECUTABLE_OUTPUT_PATH ${EXECPARH})
add_executable(${APPNAME2} ${SRC})

CMake 保姆级教程(下) | 爱编程的大丙

相关推荐

  1. CmakeLists

    2024-07-18 12:36:03       25 阅读
  2. CMakeLists.txt 怎么写

    2024-07-18 12:36:03       41 阅读
  3. CMake:编写 CMakeLists 文件

    2024-07-18 12:36:03       39 阅读
  4. CMakeLists使用总结

    2024-07-18 12:36:03       35 阅读
  5. 工作中 cmakelist 的积累

    2024-07-18 12:36:03       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 12:36:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 12:36:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 12:36:03       57 阅读
  4. Python语言-面向对象

    2024-07-18 12:36:03       68 阅读

热门阅读

  1. C语言:进程间通信

    2024-07-18 12:36:03       18 阅读
  2. OPenCV批量实现直方图均衡化----20240718

    2024-07-18 12:36:03       16 阅读
  3. vue中:class、watch、v-show使用

    2024-07-18 12:36:03       19 阅读
  4. CPU响应pcie的中断,是否需要轮询

    2024-07-18 12:36:03       23 阅读
  5. 导航目录:掌握 `cd` 命令的技巧

    2024-07-18 12:36:03       22 阅读