2011-05-18 28 views
1

我想在MacOS X Snow Leopard中編譯原本在Linux下的C++/OpenCV代碼。我安裝的OpenCV 2.2使用MacPorts的,但我不能使用這樣的事情了:在MacOSX下連接到OpenCV

g++ -o Localization Localization.o DataReader.o Kalman.o -libopencv_core -libopencv_highgui -L/usr/local/lib/ 

我得到這個錯誤:

ld: library not found for -libopencv_core 
collect2: ld returned 1 exit status 
make: *** [Localization] Error 1 

我試過其他的變化;像-lcv,-lhighgui我最初使用,但我不知道在這裏使用什麼。

回答

2

鏈接標誌應該是-lopencv_core而不是-libopencv_core。後者將查找名爲libibopencv_core.{dylib,a}而不是libopencv_core.{dylib,a}的文件。 opencv_highgui也是一樣。

+0

1.是錯誤的。 http://codepad.org/Lfp6nEFC(同樣,這是osx,所以.dylib而不是.so) – etarion 2011-05-18 10:55:35

+0

@etarion你說得對,對不起。剛看了一眼'男人'。儘管如此,擴展並不擔心。 – 2011-05-19 07:29:06

3

如果您使用的是macports,則會使用錯誤的路徑。它應該是-L/opt/local/lib,而不是/usr/local。此外,爲了方便起見,你應該只使用pkg配置:

g++ -o Localization Localization.o DataReader.o Kalman.o $(pkg-config --libs opencv) 

(即假設你在PATH/opt/local/bin)。這樣你就可以在linux和OS X上使用同一行。

+0

它適用於OSX Darwin 15.6.0達爾文內核版本15.6.0截至2018年 – 2018-01-11 18:40:06