2017-02-13 14 views
2

私のC++プログラムにはフォルダパスが必要なので、cmakeの設定から入力したいと思います。 は例えば、私のC++プログラムは、私はcmakeのを使用して、このフォルダのパスを設定したいとcmakeを使ってC/C++プログラムにフォルダパスを含める方法

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

です。私CMakeLists.txt

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

、私は

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 "set path" /home/nyan/Softwares/Libraries/caffe-master/models/bvlc_reference_caffenet/deploy.prototxt ")では、ccmakeでのみON/OFFを変更できます。どのようにしてccmakeで全体のパスを設定できますか? – batuman

+0

オプションとして宣言するのではなく 'set(CAFFE_MODEL_PATH" "CACHE PATH" Caffeモデルへのパス ")を宣言してください。 'option'は' set'の 'BOOL'型のショートカットです。 – arrowd

関連する問題