繁体   English   中英

使用lib.a文件调试链接错误

[英]Debugging link error with lib.a file

我正在使用的项目使用VTK(版本5.8.0),C ++ 4.6.3,Buntu 12.04
该代码不包含任何错误进行编译。 链接器失败,并带有: 未定义对QVTKWidget2 :: QVTKWidget2的引用(QWidget *,QGLWidget const *,QFlags)
据我所知,此类位于VTK/GUISupport/Qt/QVTKWidget2.cxx ,位于libQVTK.agrep -i -l QVTKWidget2 *.a )或libQVTK.solibQVTKWidgetPlugin.sogrep -i -l QVTKWidget2 *.so ),但是我不确定文本搜索是否足以表明引用/符号存在。 我不确定链接程序在寻找什么。
当我尝试找到带有w- nm -A *.a|grep QVTKWidget2这五个响应对我来说太神秘了。 (我不确定要寻找什么。)
当我查看.so文件( ldd libQVTK.so )时,看到的是对不同库的引用,而没有提及QVTKWidget2。 (进一步的混乱。)
链接器cmd为/usr/bin/c++ 。使用/full/path/to/VTK/build/bin/libQVTK.a显式调用该库。

编辑1:
在这种情况下,简单的文本搜索是不够的。 grep -i -l QVTKWidget2 *.a将标记libQVTK.a当仔细查看归档文件ar -t libQVTKA.a ,此lib包含QVTKWidget.cxx.o ,没有提及QVTKWidget2.cxx.o 我猜这是由于名称修改或仅仅是存档格式。

编辑2: nm -C libQVTK.a | grep QVTKWidget2 nm -C libQVTK.a | grep QVTKWidget2返回任何内容。 nm -C libQVTK.a |grep QVTKWidget显示此存档中仅存在QVTKWidget类成员。 nm -C libQVTK.so | grep QVTKWidget2 nm -C libQVTK.so | grep QVTKWidget2再次返回任何内容,而nm -C libQVTK.so | grep QVTKWidget nm -C libQVTK.so | grep QVTKWidget仅显示QVTKWidget类成员。 libQVTKWidgetPlugin.so的结果相同。同样,由于名称修饰 ,文本搜索会产生误导。

有没有一种快速的方法来找出哪个库具有QVTKWidget2类? (QVTKWidget2.cxx.o)

这里的问题是未构建QVTKWidget2类。 仅在构建OpenGl内容时才构建。 由CMAKE标志控制:VTK_USE_QVTK_QTOPENGL(on)
(我真的很讨厌CCMAKE。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM