下午好,我在Linux上用Qt C ++创建一个项目,我正在创建的计算机工作正常,但是从计算机到另一个计算机的可执行文件告诉我运行时出现以下错误: / p>
./ Agenda:符号查找错误:./Agenda:undefined symbol:_ZN7QPixmap16fromImageInPlaceER6QImage6QFlagsIN2Qt19ImageConversionFlagEE 不管怎么说,非常感谢你。
答案 0 :(得分:0)
我有同样的问题。就我而言,我的头文件和源文件中的方法签名略有不同(缺少const关键字)。编译器未引发错误,但程序在运行时崩溃,并显示与您类似的错误。
修复签名并进行干净的重新编译即可解决问题。
这也可能意味着该符号已声明但未实现-例如当编译器未包含所有源文件时。
或者它可能是由于未实现的非纯虚函数引起的(例如,如果我忘记在接口中将它们设为纯虚的,则编译器仍会寻找实现):请参见this answer。 / p>
要检查符号是否在共享库或二进制文件中定义,可以运行以下命令:
nm -C <executable/shared lib> | grep ImageConversionFlag
其中“ ImageConversionFlag”是错误消息中丢失符号的子字符串。