Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 297|回复: 1
打印 上一主题 下一主题

uos 下 Qt依赖库的复制方法

[复制链接]

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
跳转到指定楼层
楼主
发表于 2023-12-16 18:02:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
依赖库用压缩文件再解压 格式有变化,调用时报如下错误

/usr/bin/ld:/data/home/admin/gitlibcmic/Qt-5.15.2/lib/libQt5Multimedia.so: file format not recognized; treating as linker script
/usr/bin/ld:/data/home/admin/gitlibcmic/Qt-5.15.2/lib/libQt5Multimedia.so:0: syntax error
collect2: error: ld returned 1 exit status
make: *** [Makefile:631: ../../mCloud_ClientWin/output/debug/libbase.so.1.0.0] Error 1




回复

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
沙发
 楼主| 发表于 2023-12-16 18:03:46 | 只看该作者
一、问题描述
linux环境下,C++编译出现问题,报错:
XXX.so:file format not recognized; treating as linker script
XXX.so:syntax error
原因是,识别不了文件格式,只能将文件当作一个链接识别。

二、出错原因
以上错误发生后,查看了一下文件格式,发现.so文件格式变成了ASCII text:

而实际so文件格式应该为:

这个错误其实是因为我的整个开发环境是在windows下,而编译环境却是在Linux下使用makefile编译导致的。
一开始从代码库拉取项目代码到了windows平台,动态库.so文件是一个链接文件,但是拉取到windows下就失效了,再次传到linux编译的时候就无法正确找到link的文件,所以出现了上述问题。


三、解决方案
直接在linux环境下拉取对应的项目文件,不要拉取到windows平台再传到linux平台。
最后问题成功解决,编译通过!
————————————————
版权声明:本文为CSDN博主「哪吒要进厂啦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39093373/article/details/118220195

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-30 17:33 , Processed in 0.054905 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表