这可能比其他任何问题更多的是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
我有什么明显的遗失吗?
答案 0 :(得分:0)
我可以看到/ data1 / software / analysis / anaconda / lib有python和opencv libs
这很好,但还不够:你实际上需要在链接行上列出你想要的库:
g++ ... -L... -lpython2.7 -lopencv_core -lpthread
您是否希望链接器将它们神奇地添加到链接行中,因为您添加-L
指向这些库所在的目录?我所知道的链接器没有这样做。