2016-05-07 134 views
0

我試圖在一臺機器上安裝opencv。而且我遇到了一個問題:對於庫libavcodec-dev,機器中有兩個副本: /usr/local/lib/usr/lib/usr/lib中的版本與opencv兼容。但是CMake首先發現了/usr/local/lib。任何人都可以幫我嗎?如何配置cmake來查找正確的版本?謝謝。如何在cmake中設置庫的搜索優先級

+0

這個問題有關於如何影響庫的鏈接的廣泛信息:http://stackoverflow.com/questions/1487752/how-do-i-instruct-cmake-to-look-for-libraries-installed-by -macports – Soren

回答

0
find_library(AVCODEC avcodec-dev PATHS /usr/lib NO_DEFAULT_PATH) 
+0

有沒有更改搜索路徑順序的一般方法?由於這種情況下有許多圖書館。謝謝。 – Alfred

+0

@Alfred:我不確定你現在要問什麼。 –

1

要指定在/usr/lib中準確找到的特定庫「Foo」,應該使用;

find_library(Foo foo PATHS /usr/lib NO_DEFAULT_PATH) 

documentation;

如果指定了NO_DEFAULT_PATH,則不會將其他路徑添加到 的搜索中。

文檔還指出,缺省搜索庫是由env變量CMAKE_LIBRARY_PATH控制的。

+0

我不認爲這會起作用;它只會將給定的'PATHS'附加到要搜索的路徑的* end *。 –

+0

更新了答案 - 看看 – Soren