我正在尝试在MacOS X Snow Leopard中编译C++/OpenCV代码,该代码最初是在Linux下。我使用 MacPort 安装了 OpenCV 2.2,但我不能再使用这样的东西了:
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,但我不确定在这里使用什么。
如果您使用的是 macports,那么您使用的是错误的路径。它应该是-L/opt/local/lib
的,而不是/usr/local
的。另外,为了使事情变得更容易,你应该只使用 pkg-config:
g++ -o Localization Localization.o DataReader.o Kalman.o $(pkg-config --libs opencv)
(假设您的PATH
中有/opt/local/bin
)。这样,您就可以对linux和OS X使用相同的行。
链接标志应该是-lopencv_core
而不是-libopencv_core
。后者将查找一个名为 libibopencv_core.{dylib,a}
而不是 libopencv_core.{dylib,a}
的文件。opencv_highgui
也是如此.