當我安裝庫時,它將轉至${CMAKE_INSTALL_PREFIX}
。
當我find_package(
一個庫,它搜索${CMAKE_INSTALL_PREFIX}
。Cmake更改破解版本
在窗口中,cmake 3.6${CMAKE_INSTALL_PREFIX}
默認爲c:\Program Files
。這工作得很好。但在cmake 3.7${CMAKE_INSTALL_PREFIX}
默認爲c:\Program Files\${PROJECT_NAME}
。
現在,當我安裝庫A
時,它轉到C:\Program Files\A
。
當我從庫B
庫find_package(
庫A
,它搜索C:\Program Files\B
。
現在我再也找不到我的依賴了。如果我需要指定安裝的確切路徑A
,那麼我實在沒有辦法從find_package(
中得到任何東西了。我錯過了什麼嗎?
什麼是路徑(相對於安裝前綴)到'* Config.cmake'文件庫* A *?默認情況下'find_package()'不會在'$ {CMAKE_INSTALL_PREFIX}'下搜索;你明確指定這個目錄嗎? – Tsyvarev
@Tsyvarev'find_package(A)'運行'FindA.cmake',它是'$ {CMAKE_MODULE_PATH}'中的一個文件。這些通常由libA提供,並使用'find_path(PATHS $ {CMAKE_INSTALL_PREFIX})'。 – Stewart
該代碼和描述改變了很多情況:我期望'find_package'的* config *模式用於查找庫,而不是**模塊**模式。看起來@skypjack在他的回答中假設是相同的:選項* PATH_SUFFIXES *僅用於* config *模式。順便說一下,當您使用CMake構建並安裝'A'庫時,爲什麼不提供帶有該安裝的'* Config.cmake'?通常,在爲包提供'* Config.cmake'時,使用'Find * .cmake'腳本是不可能的。無論如何,請將您的評論**中的信息添加到問題本身**:正如我所說的那樣,這是有意義的。 – Tsyvarev