2016-09-30 62 views
0

我是Cmake新手,嘗試構建需要可選包(libspectre)的KDE項目(okular)。我做了一個默認的make install,庫文件位於「/ usr/lib/x86_64-linux-gnu」位置。Cmake外部可選包添加

在發電機/的CMakeLists.txt,我試圖取代 「macro_optional_find_package(LibSpectre)」 與以下內容:

find_library(LIBSPECTRE_LIBRARY NAMES libspectre PATHS "/usr/lib/x86_64-linux-gnu/") 

include(FindPackageHandleStandardArgs) 
find_package_handle_standard_args(LibSpectre DEFAULT_MSG LIBSPECTRE_LIBRARY) 

這似乎找不到libspectre庫。我嘗試用提示替換PATHS,並在NAMES後將'libspectre'更改爲'幽靈'。但似乎沒有認識到。

任何幫助表示讚賞!

+0

什麼是庫文件(在/ usr/lib/x86_64-linux-gnu /'下)的**確切名稱**(帶擴展名),您希望找到*嗎?你確定,執行'find_library()'調用嗎? (嘗試在它之後添加'message()'調用)。在爲自己構建項目時,最好在CMake緩存中設置「LIBSPECTRE_LIBRARY」變量。無需爲此修改腳本。 – Tsyvarev

+0

嗨,庫文件的名稱是** libspectre.so.1 **。這是_libspectre.so.1.1.7_的符號鏈接。我會嘗試你的建議。謝謝! – fastforward

回答

1

CMake不知道庫的如此版本,它只檢查縮小.so擴展名。您可以創建libspectre.so - 符號連接libspectre.so.1。所以

find_library(LIBSPECTRE_LIBRARY NAMES spectre PATHS "/usr/lib/x86_64-linux-gnu/") 

將工作。