2017-01-15 51 views
0

我有一個當前在XCode上運行的項目。 隨着我們擴大我們的團隊,我們在Ubuntu上有2個開發人員。所以我們試着切換到CLion。CLion不同構建系統的CMakeLists.txt庫路徑

現在的問題是,include路徑完全不同,而「find_package」不起作用。

有沒有辦法解決這個問題,而沒有定義每個構建系統的路徑?

回答

0

有幾個的方法:

  1. 設置標誌-DCMAKE_PREFIX_PATH =在工作區中設置。確保使用.gitignore工具來防止忽略.idea /文件夾中不必要的文件。

  2. 擁有的CMakeLists.txt提供的環境,並有包含的CMakeLists.txt您的項目的CMakeLists.txt。

第二種方法可能是更容易管理,因爲它可以讓你:

一)定義每個編譯環境作了明確規定。 b)避免污染項目的CMakeLists.txt文件和特定環境的噪音。

通常,當你建立和安裝庫,它們被安裝在以下目錄結構:

<base directory such as /usr/local>/bin

<base directory such as /usr/local>/lib

<base directory such as /usr/local>/include

的-DCMAKE_PREFIX_PATH =應指定「<base directory such as /usr/local>」部分。不是「/include」部分。

如果你還沒有在他們的正常結構安裝所需的庫,那麼所有的賭注都關閉,你可能必須指定包括和庫目錄明確。

在這一點上,我可以引導你走向文檔嗎?

https://cmake.org/cmake/help/v3.7/command/find_package.html?highlight=find_package

https://cmake.org/Wiki/CMake_Useful_Variables

+0

謝謝! 因此,如果我定義-DCMAKE_PREFIX_PATH,CMake不會找到頭文件。 即使我添加一個包含路徑。頭文件是否有另一個標誌? – fredalex

+0

@fredalex更新了答案。如果不瞭解更多關於如何構建先決條件的信息,很難幫助您。 –

+0

謝謝! 我得到了boost和openssl的問題。 因此,一切工作在Ubuntu上。 在Mac上,它們安裝了自制軟件(/usr/local/Cellar/openssl/1.0.2d_1)。 如果我將這些目錄添加到DCMAKE_PREFIX_PATH,我仍然收到錯誤,找不到頭文件。 (如果我手動添加到包含路徑,一切正常) – fredalex