养成喜欢进行外部编译(out-of-source build) 而不是in-source build

养成喜欢进行外部编译(out-of-source build) 而不是in-source build

out-of-source build一般在源文件的顶层目录中 新建build目录

对于命令行可以  cd build

然后  cmake .. -G"MinGW Makefiles"即可

这样所有的临时文件 都会放在build目录下不会和source有任何的瓜噶。


但是必须注意:

status  F:/cmake/cmake-2.8.11.2/Tutorial/Step2 This is a Project_source_dir

status F:/cmake/cmake-2.8.11.2/Tutorial/Step2/build This is a Project_binary_dir

也就是    


  Message(status "  " ${PROJECT_SOURCE_DIR} " This is a Project_source_dir")

  Message(status " " ${PROJECT_BINARY_DIR} " This is a Project_binary_dir")   

这两个参数要注意他们的不同之处!



发现一个CMake的bug

当前若是

ADD_SUBDIRECTORY(. bin)放在CMakeListsts.txt的顶层目录中会出现 一直在build目录创建bin bin bin的目录


ADD_SUBDIRECTORY(src bin) 通过这个想尝试上面那个。而且删了老半天都删不完,我操。就像中病毒一样


cmake_minimum_required (VERSION 2.6)

project (Tutorial)


# The version number.

set (Tutorial_VERSION_MAJOR 1)

set (Tutorial_VERSION_MINOR 0)


ADD_SUBDIRECTORY(. bin) #因为其实大伙肯定不会这样玩  肯定是每个目录一个CMakeLists 却没想到会这样。

# configure a header file to pass some of the CMake settings

# to the source code

configure_file (

  "${PROJECT_SOURCE_DIR}/TutorialConfig.h.in"

  "${PROJECT_BINARY_DIR}/TutorialConfig.h"

  )


# add the binary tree to the search path for include files

# so that we will find TutorialConfig.h

include_directories("${PROJECT_BINARY_DIR}")


# add the executable

add_executable(Tutorial tutorial.cxx)

如何从

一个目录的三个文件即

----CMakeLists.txt

----tutorial.cxx

----Tutorial.config.in

到下面的文档结构呢?


├─Step1

│  ├─build

│  │  ├─bin

│  │  │  └─CMakeFiles

│  │  │      └─Tutorial.dir

│  │  └─CMakeFiles

│  │      ├─2.8.11.2

│  │      │  ├─CompilerIdC

│  │      │  └─CompilerIdCXX

│  │      └─CMakeTmp

│  └─src

        |

        ——CmakeLists.txt

|=======CMakeLists.txt(主要用于add_subdirectory(src bin) 最后会把所有的东西都放到bin中  当然你也是可以通过EXECUTABLE_OUTPUT_PATH  和  LIBRARY_OUTPUT_PATH对目标名字和路径等进行修改)


上面的内容可以参考:

CMake Pratice这一文章,或者参考我http://hi.baidu.com/jueqingsizhe66/item/dd99f18a1ef64e16c2162751

即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值