【问题标题】:Linking to OpenCV under MacOSX在 MacOSX 下链接到 OpenCV
【发布时间】:2011-05-18 09:53:07
【问题描述】:

我正在尝试在最初在 Linux 下的 MacOS X Snow Leopard 中编译 C++/OpenCV 代码。我使用 MacPorts 安装了 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,但是这里不知道用什么。

【问题讨论】:

    标签: c++ macos linker opencv


    【解决方案1】:

    如果您使用的是 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 上使用同一行。

    【讨论】:

    • 它适用于 OSX Darwin 15.6.0 Darwin Kernel Version 15.6.0 as of 2018
    【解决方案2】:

    链接标志应该是-lopencv_core 而不是-libopencv_core。后者将寻找一个名为libibopencv_core.{dylib,a} 而不是libopencv_core.{dylib,a} 的文件。 opencv_highgui 也一样。

    【讨论】:

    • 1.是错的。 codepad.org/Lfp6nEFC(另外,这是 osx,所以 .dylib 而不是 .so)
    • @etarion 你是对的,对不起。刚刚抬头man ld。不过,扩展是不用担心的。
    猜你喜欢
    • 2017-06-20
    • 2012-03-10
    • 2014-05-23
    • 2017-11-04
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    相关资源
    最近更新 更多