2017-09-05 75 views
0

我試圖在我的MacOSx上使用C++的小波庫(https://sourceforge.net/projects/wavelet2d/files/wavelib-0.4.0.0/),並且在使它工作時遇到了困難。編譯錯誤:找不到庫

這裏是我的命令行:

g++ -I /usr/local/include/wavelib -L /usr/local/lib -lwavelet2d testWavelib3.cpp -o testWavelib3 

我得到以下錯誤:

library not found for -lwavelet2d 

庫文件在目錄/usr/local/lib命名'libwavelet2d.so.1'

你有什麼想法嗎?

+0

你確定你擁有的lib是爲了正確的架構嗎?您還需要將參數列表中庫的前面的.cpp文件移動到參數列表中 –

回答

1

你提到你有libwavelet2d.so.1/usr/local/lib,但不是libwavelet2d.so。通常這意味着您已經爲該庫安裝了「運行時軟件包」,但未安裝「開發包」。應該有一個符號鏈接/usr/local/lib/libwavelet2d.so -> libwavelet2d.so.1

可以使符號鏈接自己嘗試一下:

ln -s libwavelet2d.so.1 /usr/local/lib/libwavelet2d.so 

在構建時,必須使用無版本後綴(.1)文件。在運行時,只會引用後綴文件。