2024年工作笔记
- CMake相关
1.1 CMake 从基础到高级技巧
# 根据操作系统类型安装不同的文件
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
install(FILES "linux_specific_file.conf" DESTINATION etc)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
install(FILES "windows_specific_file.conf" DESTINATION etc)
endif()
# 根据构建类型安装不同的库文件
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
install(FILES "libMyLibrary_d.so" DESTINATION lib)
else()
install(FILES "libMyLibrary.so" DESTINATION lib)
endif()
1.2 Cmake使用教程
变量名 | 含义 |
---|---|
CMAKE_SOURCE_DIR | 最顶层CmakeLists.txt所在目录,CHAN |
CMAKE_CURRENT_SOURCE_DIR | 当前CMakeLists.txt 所在路径 |
PROJECT_SOURCE_DIR | 工程的根目录 |
CMAKE_ARCHIVE_OUTPUT_DIRECTORY | 静态库的输出目录 |
CMAKE_LIBRARY_OUTPUT_DIRECTORY | 动态库的输出目录 |
CMAKE_RUNTIME_OUTPUT_DIRECTORY | 可执行文件的输出路径 |
cmake_minimum_required (VERSION 3.5)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
project (Test)
# 设置头文件目录
include_directories(${PROJECT_SOURCE_DIR}/inc INC_DIR)
# 设置源文件目录
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_DIR)
# 添加可执行文件
add_executable(helloworld hello.cpp)
# 链接库
target_link_libraries(helloworld ${CMAKE_SOURCE_DIR}/add.a)
1.3 讲的非常详细赞一个 CMake 保姆级教程(上)