2013-10-28 136 views
0

假設在我的機器上protobuf安裝在一些非標準的位置,我應該怎麼做才能讓find_package(Protobuf)找到它?指定自定義安裝find_package(Protobuf)

也許CMAKE_LIBRARY_PATH可以做到這一點,但它很醜,因爲其他find_package命令也會查看這個位置。我在尋找的是類似於BOOST_ROOT的Find_package(Boost),它僅由find_package(Protobuf)使用。

任何人都可以提供一些提示嗎?我正在使用的操作系統是Linux。

回答

0

我建議使用CMAKE_PREFIX_PATH,這個變量(參考here)指定安裝應用程序和/或庫的附加前綴路徑。它會導致查找模塊和其他相關調用除了每個平臺上的標準外,還會查找此前綴。如果您在/ home /用戶/前綴已經protobuf的,然後使用

cmake -DCMAKE_PREFIX_PATH:PATH=/home/user/prefix ../src 

從構建目錄會導致CMake的尋找在protobuf的/ home/user中/前綴。除了系統路徑之外,我們使用這種方法強制CMake查找用戶本地安裝前綴。