如何使用cmake将文件夹路径包含到C / C ++程序中

时间:2017-02-13 04:55:42

标签: c++ cmake g++ cmake-gui

我的c ++程序需要一个文件夹路径,我喜欢从cmake配置输入。 例如,我的c ++程序是

int main(){
std::string pretrained_binary_proto("/home/Softwares/Libraries/caffe-master/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel");
}

我喜欢使用cmake设置此文件夹路径。

/home/Softwares/Libraries/caffe-master/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel

在我的CMakeLists.txt中,我有

set(CAFFE_MODEL_PATH         "/home/nyan/Softwares/Libraries/caffe-master/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel")

但我在ccmake ..配置中没有看到CAFFE_MODEL_PATH。 那么如何将该路径包含在我的程序中呢?

1 个答案:

答案 0 :(得分:1)

“简单”的方式:

add_definitions(-DCAFFE_MODEL_PATH=\"${CAFFE_MODEL_PATH}\")

然后在代码中使用CAFFE_MODEL_PATH常量。

如果你有很多这样的定义,那么更喜欢这种方式:

  1. 使用yourproject-config.h.cmake
  2. 等内容创建#cmakedefine CAFFE_MODEL_PATH
  3. 使用configure_file(yourproject-config.h.cmake yourproject-config.h)
  4. 不要忘记include_directorties(${CMAKE_CURRENT_BINARY_PATH})
  5. #include "yourproject-config.h"无论何时何时需要访问常量。