2014-06-30 76 views
1

內我在一家詹金斯環境中使用CMake的構建共享對象,並希望建立從源頭的protobuf編譯器。從源代碼構建編譯器「的protobuf」,並用它來與它從cmake的

這一切工作,但在下一步我試圖用編譯器來翻譯我的原始文件不起作用,導致它找不到它自己的共享對象。我已經嘗試在CMakeLists.txt文件中定義搜索路徑,但它不會檢測我的存儲庫樹$PRJ_MIDDLEWARE/protobuf/lib中的共享對象位置。我試着告訴CMake的或系統中通過定義搜索:

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "$ENV{PRJ_MIDDLEWARE}/protobuf/lib") 
set(ENV{LD_LIBRARY_PATH} "$ENV{PRJ_MIDDLEWARE}/protobuf/lib:$ENV{LD_LIBRARY_PATH}") 

但在試圖調用protoc編譯器我剛建立時,它總是失敗。我試圖從調用''ldconfig'' CMake的但原因詹金斯用戶沒有這樣做的權利不起作用。目前,我唯一的解決方案是登錄到構建服務器,手動執行此操作爲root。但那不是我想要做的事......下一個版本移動到一個新目錄 - 這必須再次完成。我還有其他選擇嗎?優選直接從CMake的,從詹金斯或者甚至協議緩衝器

謝謝

回答

0

兩個想法浮現在腦海中:

  1. 構建protobuf的編譯器爲靜態二進制文件(我不知道這是可能的,但它通常是。)
  2. 設置PATH環境變量在調用cmake之前指向protoc共享庫的位置。