cmake编译工程列子

理解:cmake是一个跨平台编译器工具,它可以生成各种编译文件。本文主要是将如何通过cmake来编译c++工程。它采取out-of-source(即中间产物与源码分离)方式。在c++中,可以认为cmake是将所有源文件.h和.cpp都放在同一个目录下,来进行编译和链接,最终生成工程。
1、工程目录结构
payment
            |-----bin  //生成可执行程序文件夹
            |-----var //存放日志文件夹
            |-----build //构建工程文件夹
            |-----etc //配置文件夹
            |-----include  //源码.h文件夹
                    |-----business
                    |-----common
            |-----src //源码.cpp文件夹
                    |-----business
                    |-----common
                    |------CMakeLists.txt (1)
            |------CMakeLists.txt (2)

(2)的文件内容为:
#工程名字
PROJECT(PaymentService)
#cmkae最低版本,低于2.6会停止构建
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
#指定编译器和编译方式
SET(CMAKE_CXX_FLAGS "-g -std=c++11 -lpthread")
#加载.h文件,PROJECT_SOURCE_DIR为cmake自定义变量,表示工程编译的根目录
INCLUDE_DIRECTORIES(
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/include/business
${PROJECT_SOURCE_DIR}/include/common
#下面为使用第三方库需要引进的.h文件
/usr/include/pay
/usr/include/pay/wpaybl
/usr/include/pay/busiframe
/usr/include/pay/newdbdal/include
/usr/include/pay/dbdal/oracle
/usr/include/pay/route)

#表示要使用的库文件路径
LINK_DIRECTORIES(/usr/libpay)

#设置输出工程的路径
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

#添加子CMakeLists.txt路径
ADD_SUBDIRECTORY(src)

(1)的文件内容
PROJECT(PaymentService)

# 收集目录中的文件名并赋值给变量 
AUX_SOURCE_DIRECTORY(. SRC_LIST)
AUX_SOURCE_DIRECTORY(./business SRC_BUSINESS_LIST)
AUX_SOURCE_DIRECTORY(./common SRC_COMMON_LIST)

#文件列表操作
LIST(APPEND SRC_LIST ${SRC_BUSINESS_LIST})
LIST(APPEND SRC_LIST ${SRC_COMMON_LIST})

#将列表加入可执行目标的编译
ADD_EXECUTABLE(PaymentServer ${SRC_LIST})

#设置单个可执行目标所需要连接的库
TARGET_LINK_LIBRARIES(PaymentServer libACE.so libjson_linux-gcc-4.1.2_libmt.so libprotobuf.so libcurl.so libmemcached.so libmemcachedutil.so libclntsh.so libnewdal.so liblog4cpp.so libbusiframe.a libwpaybl.a liblog4cplus.a libcpproute.a)


#cmake -DCMAKE_INSTALL_PREFIX=~ ..
#设置构建的路径,控制make install是文件会安装到什么地方,默认是/usr/local
SET(INSTALL_DIR "PaymentService/Business")
INSTALL(TARGETS PaymentServer RUNTIME DESTINATION ${INSTALL_DIR}/bin)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值