Qt Creator中用QMake/CMake链接.so文件报错求助
Qt链接.so库触发"file format not recognized"错误的解决
问题场景
在Qt Creator中尝试链接libWIC_SDK.so库时,无论是用QMake还是CMake配置构建脚本,都遇到了相同的链接错误。我原本的QMake配置代码如下:
INCLUDEPATH += "/opt/workswell/wic_sdk/include" LIBS +=-L/opt/workswell/wic_sdk/lib LIBS += -lWIC_SDK
之前用这套逻辑链接Windows下的.dll库完全正常,但换到Linux链接.so时,编译器抛出错误:
/opt/workswell/wic_sdk/lib/libWIC_SDK.so:-1: error: file not recognized: file format not recognized
查了不少资料都说.so和.dll的链接方式一致,当时完全搞不懂问题出在哪。
问题根源
后来才发现,这个.so库是64位的,但我当前使用的编译器是32位版本,架构不匹配导致链接器无法识别库文件,而错误提示的描述确实有误导性,没直接点明架构问题。
解决办法
- 换成64位的编译器工具链,重新编译项目并链接库
- 如果没办法更换编译器,就联系库的提供商要对应32位版本的.so库
内容的提问来源于stack exchange,提问作者James Rogers
相关产品推荐
相关产品推荐

