【问题标题】:Cannot link to python and opencv libraries in Anaconda无法链接到 Anaconda 中的 python 和 opencv 库
【发布时间】:2014-10-01 21:45:33
【问题描述】:

这可能更像是一个 g++ 问题,但我正在尝试链接安装在 Anaconda 中的库,但似乎找不到它们。我有以下编译命令:

 g++  -O3 -shared -Wl,-no-undefined -o _MakeDataPyExt.so src/pyext.o -L/data1/software/analysis/anaconda/lib -L/data2/software/stable/CUDA/5.5.22/lib64 -lpthread

这个编译的输出有很多抱怨如下:

pyext.cpp:(.text+0x1ed): undefined reference to `PyString_AsString'
pyext.cpp:(.text+0x2f1): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

我可以看到 /data1/software/analysis/anaconda/lib 有 python 和 opencv 库

 $ ls /data1/software/analysis/anaconda/lib/libpython2.7.so

返回

 /data1/software/analysis/anaconda/lib/libpython2.7.so

同样,

 $ ls /data1/software/analysis/anaconda/lib/libopencv*

返回几个库,其中(我相信)重要的是:

 /data1/software/analysis/anaconda/lib/libopencv_core.so 
 /data1/software/analysis/anaconda/lib/libopencv_core.so.2.4
 /data1/software/analysis/anaconda/lib/libopencv_core.so.2.4.6 

我在这里有什么明显的遗漏吗?

【问题讨论】:

  • 是否安装了Python.h等头文件?您还需要 OpenCV 开发文件。
  • @MattDMo - 是的,我愿意。我用它们来创建 src/pyext.o

标签: python opencv linker g++ anaconda


【解决方案1】:

我可以看到 /data1/software/analysis/anaconda/lib 有 python 和 opencv 库

这很好,但还不够:您实际上需要在链接行上列出您想要的库:

g++ ... -L... -lpython2.7 -lopencv_core -lpthread

您是否期望链接器仅仅因为您添加了指向这些库所在目录的-L 而神奇地将它们添加到您的链接行?据我所知,没有任何链接器可以做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2019-12-02
    相关资源
    最近更新 更多