当前位置:   article > 正文

CmakeLists

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最后,动态库在物理内存只保存一份

  1. cmake_minimum_required(VERSION 3.15)
  2. project(test)
  3. set(LIBPATH &{PROJECT_SOURCE_DIR}/lib)
  4. set(EXECPARH ${PROJECT_SOURCE_DIR}/bin)
  5. set(HREADPATH ${PROJECT_SOURCE_DIR}/include)
  6. set(CALCLIB calc)
  7. set(SORTLIB sort)
  8. set(APPNAME1 app1)
  9. set(APPNAME2 app2)
  10. #给当前节点添加子目录
  11. add_subdirectory(calc)
  12. add_subdirectory(sort)
  13. add_subdirectory(test1)
  14. add_subdirectory(test2)
  15. cmake_minimum_required(VERSION 3.15)
  16. project(calc)
  17. #搜索源文件
  18. aux_source_directory(./ SRC)
  19. include_directories(${HREADPATH})
  20. set(LIBRARY_OUTPUT_PATH ${LIBPATH})
  21. add_library(${CALCLIB} STATIC ${SRC})
  22. cmake_minimum_required(VERSION 3.15)
  23. project(sort)
  24. #搜索源文件
  25. aux_source_directory(./ SRC)
  26. include_directories(${HREADPATH})
  27. set(LIBRARY_OUTPUT_PATH ${LIBPATH})
  28. add_library(${SORTLIB} STATIC ${SRC})
  29. cmake_minimum_required(VERSION 3.15)
  30. project(test1)
  31. #搜索源文件
  32. aux_source_directory(./ SRC)
  33. include_directories(${HREADPATH})
  34. link_directories(${LIBPATH})
  35. link_libraries(${CALCLIB})
  36. set(EXECUTABLE_OUTPUT_PATH ${EXECPARH})
  37. add_executable(${APPNAME1} ${SRC})
  38. cmake_minimum_required(VERSION 3.15)
  39. project(test1)
  40. #搜索源文件
  41. aux_source_directory(./ SRC)
  42. include_directories(${HREADPATH})
  43. set(SORTLIB sort)
  44. link_directories(${LIBPATH})
  45. link_libraries(${LIBSORT})
  46. set(EXECUTABLE_OUTPUT_PATH ${EXECPARH})
  47. add_executable(${APPNAME2} ${SRC})

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/875017
推荐阅读
相关标签
  

闽ICP备14008679号