2017-02-13 44 views
2

我的C++程序需要一个文件夹路径,我喜欢从cmake配置中输入。 例如,我的C++程序是如何将使用cmake的文件夹路径包含到C/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

“易” 的方式:

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

,然后使用代码CAFFE_MODEL_PATH不变。


更优选的方式,如果你有很多这样的定义:

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

如果我按照首选方式,在哪里设置CAFFE_MODEL_PATH。如果我在CMakeLists.txt中选择(CAFFE_MODEL_PATH“设置路径”“/home/nyan/Softwares/Libraries/caffe-master/models/bvlc_reference_caffenet/deploy.prototxt”),我只能在ccmake中更改开/关。我如何设置ccmake的整个路径? – batuman

+0

不要将它声明为选项,而是将set(CAFFE_MODEL_PATH“”CACHE PATH“路径指向Caffe模型)''。 'option'只是'BOOL'类型'set'的一个快捷方式。 – arrowd

相关问题