(c++) CMake学习笔记

目录

1. 项目级组织 (不含库文件)

2. 动态库和静态库

3. 项目级组织 (含库文件)

4. 参考文件


一、项目级组织(不含库文件)

1.1 项目结构(未生成执行文件)

1.2  CMakeLists源码

CMakeLists.txt

cmake_minimum_required(VERSION 3.1)
  
project(test)

add_subdirectory(src)

src/CMakeLists.txt

aux_source_directory(. SRC_LIST)
  
include_directories(../include)

add_executable(main ${SRC_LIST})

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

二、动态库和静态库

2.1 项目结构(已生成库文件)

 2.2 CMakeList.txt源码

CMakeLists.txt

cmake_minimum_required(VERSION 3.1)
  
project(test4)

set(SRC_LIST ${PROJECT_SOURCE_DIR}/func/Func1.cpp)

add_library(func_shared SHARED ${SRC_LIST})
add_library(func_static STATIC ${SRC_LIST})

set_target_properties(func_shared PROPERTIES OUTPUT_NAME "Func1")
set_target_properties(func_static PROPERTIES OUTPUT_NAME "Func1")

set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

三、项目级组织(含库文件)

3.1 项目结构

3.2 CMakeLists 源代码

CMakeLists.txt

cmake_minimum_required(VERSION 3.1)
  
project(test3)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -O2")
add_compile_options(-std=c++11 -g -Wall -O2)

add_subdirectory(lib)
add_subdirectory(src)

 lib/CMakeLists.txt

set(LIB_SRC func1.cpp)

include_directories(${PROJECT_SOURCE_DIR}/include)

#动态库
#add_library(func SHARED ${LIB_SRC})
#静态库
add_library(func STATIC ${LIB_SRC})

set_target_properties(func PROPERTIES OUTPUT_NAME "func")

set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

src/CMakeLists.txt

set(SRC_LIST main.cpp)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

include_directories(${PROJECT_SOURCE_DIR}/include)

#动态库
#link_directories(/usr/local/lib )
#静态库
link_directories(${PROJECT_SOURCE_DIR}/lib)

#库文件
link_libraries(func)

add_executable(main ${SRC_LIST})

四、参考

CMake语法详解_shawn·xiao的博客-CSDN博客_cmake语法

【C++】Cmake使用教程(看这一篇就够了)_c++ make_隐居的遮天恶鬼的博客-CSDN博客

Cmake 模板和语法_zzmc的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值