2011-07-04 38 views
1

今天我遇到了一個(對我來說)奇怪的行爲:使用QMake和PkgConfig選項等。我能夠鏈接opencv庫,但後來我使用PkgConfig切換到CMake。一旦我嘗試構建我的軟件,鏈接器抱怨說它無法找到庫libcvaux,pkg-config返回要求爲opencvpkg-config --libs opencv)傳遞庫。在Linux下鏈接庫

/usr/lib我發現了一個libcvaux.so.{version},但沒有「普通」條目libcvaux.so。所以我做的是創建一個符號鏈接,現在它可以工作。

現在我想知道它爲什麼以前工作。有什麼可以通過ld選項說「使用最新版本,並通過查看so後綴後面的數字來獲得版本」?或者是opencv軟件包的維護者忘記添加這個符號鏈接的問題?由於例如libcvlibhighgui有這樣的符號鏈接。

謝謝!

+0

請移至serverfault,或超級用戶。 –

+1

沒有在這個問題有關的c + + –

回答

0

從手冊頁LDCONFIG:

檢查LDCONFIG的頭和文件 名的庫遇到 確定哪個版本應該 有自己的鏈接更新的時候。

也許之前的ldconfig運行刪除了鏈接。

+0

謝謝你aswer,我不知道'ldconfig'。無論如何,我跑了它,它並沒有解決我的問題。對於我提到的lib,它只是創建一個符號鏈接'version.subsersion - > version.subversion.patchlevel'。這與處理'libcv'的方式不同,我發現我期待'libcvaux'的符號鏈接。我採用了符合我的符號鏈接的實用方法,並且記住,ldconfig'爲所有其他庫維護它們。 – Philipp