我已经成功构建并安装了 opencv 库。现在我试图在我的应用程序中使用这些库,但我不断收到链接错误。我在用:
pkg-config --libs opencv
当我在命令行上运行它时,我可以看到输出。它列出了很多库,但并非所有库都列出了指定的绝对路径。例如,这里是部分输出:
libippcc_l.a libippvm_l.a tbb rt pthread m dl /usr/lib/libXext.s stdc++
当我构建我的应用程序时,我会收到链接错误。这是部分输出:
g++: libipps_l.a: No such file or directory
g++: libippi_l.a: No such file or directory
g++: libippcv_l.a: No such file or directory
g++: libippcc_l.a: No such file or directory
g++: libippvm_l.a: No such file or directory
g++: tbb: No such file or directory
g++: rt: No such file or directory
g++: pthread: No such file or directory
g++: m: No such file or directory
g++: dl: No such file or directory
g++: stdc++: No such file or directory
似乎链接器无法解析不包含似乎合理的绝对路径的库。但我的困惑是为什么 pkg-config 的输出不包含其所有库的绝对路径?当我不在构建行上使用“pkg-config --libs opencv”时,英特尔 ipp、pthread、m、stdc++ 等的库得到正确解析,并且应用程序构建良好,因为我还在链接行上指定了它们如:“-lpthread -lstdc++”...等。这些位于链接行上,在我指定之后:“pkg --libs opencv”
但是使用“pkg-config --libs opencv”会破坏分辨率。
我已经从命令行运行“ldconfig”来更新我的 libs 目录中的所有符号链接,但这并没有解决这个问题。
任何帮助将不胜感激。