【发布时间】:2012-05-18 13:27:20
【问题描述】:
我已经成功构建并安装了 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 目录中的所有符号链接,但这并没有解决这个问题。
任何帮助将不胜感激。
【问题讨论】:
-
我很想改标题...但我不会。
-
抱歉标题。我是新来的,正在学习什么是正确的行为。当构建问题阻碍进度时,我会感到有些沮丧。