簡體   English   中英

CMake find_package()找不到包含目錄

[英]CMake find_package() cannot find include dirs

我正在嘗試安裝兩個項目:Foo和NeedsFoo。 我已經使用cmake成功編譯並在本地安裝了Foo。 但是,我在服務器上,cmake似乎無法“記住” Foo在哪里。

在cmake中配置NeedsFoo我有

list(APPEND CMAKE_MODULE_PATH "<prefix>/foo-install/CMake/FOO") # add path to FOOConfig.cmake
find_package(FOO REQUIRED)
if( FOO_FOUND )
   MESSAGE(STATUS "Found FOO!")
endif( FOO_FOUND )

MESSAGE(STATUS ${FOO_INCLUDE_DIRS})

“發現了富!” 會打印---因此cmake會找到FOO ---但變量${FOO_INCLUDE_DIRS}為空,因此該包無法編譯。 有什么想法嗎?

編輯:似乎在服務器上安裝了Foo的另一個副本。 不幸的是,我無法使用它(它是我們項目的“主”分支,我需要使用自己的分支)。 我嘗試將find_package調用更改為

find_package(FOO REQUIRED PATHS "<prefix>/foo-install/CMake/Foo" NO_DEFAULT_PATH) 

但這並不能解決問題。

確保已安裝標頭,通常您需要安裝-dev或-devel軟件包才能獲得標頭。 如果已安裝它們,並且您可以在系統中看到它們,則它們可能位於cmake所期望的路徑之外。 打開findFoo.cmake文件(在Linux上,該文件通常位於/ usr / share / c make-xy / modules中),並檢查期望位置的列表,看看是否已安裝在不太傳統的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM