cmakelists使用小记(codelite转VS)

近期需要将原来使用codelite编译环境的项目转到VS上,因此考虑直接用codelite自动生成的cmakelists来生成VS的项目设置。但是其中很多设置需要修改,记录如下:

  1. cmake的版本要求
    1. codelite自动生成的cmakelists中要求最小为2.8.11,因为后面可能用到3.5版本加入的多文件拷贝,因此需改为最小3.6
    2. cmake_minimum_required(VERSION 3.6)

       

  2. 输出目录设置
    1. codelite使用了CMAKE_LIBRARY_OUTPUT_DIRECTORY;CMAKE_RUNTIME_OUTPUT_DIRECTORY;CMAKE_ARCHIVE_OUTPUT_DIRECTORY三个输出设置。
    2. 若在Win+VS中直接使用,会自动在你所设置的目录后面扩展一层 <CONFIG> 目录。因此改为使用CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG
    3. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CL_OUTPUT_DIRECTORY})

       

  3. 编译参数修改
    1. codelite使用gcc编译器,使用了-g等编译选项
    2. 换到VS后需删除
  4. lib库的link
    1. codelite中link了.a形式的lib库
    2. VS中link到.lib的库
    3. target_link_libraries(MY_SDK_Test
          ${CMAKE_SOURCE_DIR}/../ThirdParty/gtest/lib/gtest[v140_x64_md_dbg].lib
      )

       

  5. 文件拷贝(post_build)
    1. codelite可直接使用cp等命令直接进行复制
    2. VS中建议使用${CMAKE_COMMAND} -E copy_if_different(有差异时复制,支持多文件)
    3. file(GLOB dll_files ${CMAKE_SOURCE_DIR}/LIB_SDK/bin/*.dll)
      
      ADD_CUSTOM_COMMAND(TARGET MY_SDK_Test
              POST_BUILD
              COMMAND ${CMAKE_COMMAND} -E copy_if_different
      		${dll_files} ${CMAKE_SOURCE_DIR}/bin/
              COMMENT  "copy dll files" 
      )

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值