CMakeLists 的使用,大型工程使用cmake 的构件过程

 

 

CMakeLists 的使用,大型工程使用cmake 的构件过程

 

CMakeLists_1

 PROJECT(hello_2)
cmake_minimum_required(VERSION 2.8)   #cmake的最低版本

 FILE(GLOB SOURCE_1 "${CMAKE_SOURCE_DIR}/main/*.cpp") #下面2句告诉CMake,源文件在哪里?main.cpp
 FILE(GLOB SOURCE_2 "${CMAKE_SOURCE_DIR}/hello/*.cpp")#程序必须链接到hello.cpp里面的SayHello
 
 INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include/")#告诉CMake头文件在哪里?
 
 ADD_EXECUTABLE(hello_2 ${SOURCE_1} ${SOURCE_2}) #生成可执行文件

 

CMakeLists_2

  • cmake中

PROJECT(hello)
cmake_minimum_required(VERSION 2.8)
SET(PROJECT_ROOT_PATH "${CMAKE_SOURCE_DIR}/../")   #工程的根目录,即test
SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin/") #可执行文件生成后存放的目录(CMAKE_SOURCE_DIR是cmake目录)
SET(LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/lib/") #静态库生成后存放的目录

INCLUDE_DIRECTORIES("${PROJECT_ROOT_PATH}/include/") #告诉CMake头文件在哪里?
LINK_DIRECTORIES("${CMAKE_SOURCE_DIR}/lib/")#告诉CMake静态库在哪里?

ADD_SUBDIRECTORY(src) #多目录,把src目录加进来,src里面才是真正编译main和hello的
    •  src中
    • ADD_SUBDIRECTORY(main)
      ADD_SUBDIRECTORY(hello)
      • hello中
      • FILE(GLOB SOURCE_1 "${PROJECT_ROOT_PATH}/hello/hello.cpp")  #告诉CMake,源文件在哪里?
        ADD_LIBRARY(hello STATIC ${SOURCE_1}) #打包成hello静态库 *.a---如果想生成动态库*.so,将STATIC变为SHARED
      • main中
      • FILE(GLOB SOURCE_1 "${PROJECT_ROOT_PATH}/main/main.cpp")
        ADD_EXECUTABLE(main ${SOURCE_1})  #生成可执行文件
        TARGET_LINK_LIBRARIES(main hello) #并在可执行文件上连接到这个库

         

转载于:https://www.cnblogs.com/Jessica-jie/p/9324248.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值