无法链接到Anaconda中的python和opencv库

时间:2014-10-01 21:45:34

标签: python opencv linker g++ anaconda

这可能比其他任何问题更多的是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 libs

 $ 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 

我有什么明显的遗失吗?

1 个答案:

答案 0 :(得分:0)

  

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

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

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

您是否希望链接器将它们神奇地添加到链接行中,因为您添加-L指向这些库所在的目录?我所知道的链接器没有这样做。