linux下如何实现QT的静态编译?

lijuan_nie 2010-02-04 11:13:15
现在是我已经写好了QT程序,
用qmake -spec /usr/local/Trolltech/Qt-Embedded-arm/mkspecs/qws/linux-arm-g++生成了Makefile文件,
然后make
编译通过,用NFS方式下到板子上运行报错/lib/ld-linux.so.3: bad ELF interpreter: No such file or directo
ry
我在网上找了下关于ld-linux.so.3说是因为没有静态编译而产生的这个错误。
但是现在不知道怎么实现在宿主机上的静态编译。网上找到的好像都是关于windows版的静态编译的方法,没有找到linux上的方法。
windows上的方法是在mkspecs文件里找win32-msvc2008 目录,编辑qmake.conf,
将QMAKE_CFLAGS_XXXXXXX全改成静态。还有将win32-g++下的qmake.conf,在QMAKE_LFLAGS标签中增加-static。
然后重新编译,这些好像都是针对windows版的。linux环境的应该怎么做?

哪位高人帮帮我呀。怎样实现在linux环境下的静态编译QT。
最好能将QT移植到arm板子上跑,需要注意的地方都讲讲。

新手分不多,希望见谅。
...全文
2444 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
A3c4d1a2b 2010-04-11
  • 打赏
  • 举报
回复
感谢楼主,辛苦了
MicroSky2813 2010-02-04
  • 打赏
  • 举报
回复
编译超慢啊……
lijuan_nie 2010-02-04
  • 打赏
  • 举报
回复
小天你有没有msn呀。可以加你不?或者QQ
lijuan_nie 2010-02-04
  • 打赏
  • 举报
回复
我现在重新解压了一个qt-embedded-linux-opensource-src-4.5.0
根据你的方法:
第一步:<QTDIR>\mkspecs\win32-g++\qmake.conf:这个文件里找这行(win32-g++代表环境,其他环境就用其他文件夹里的 )
QMAKE_LFLAGS=-enable -stdcall-fixup-Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
用#注释掉
加这句(其实就是改成这句了)
QMAKE_LFLAGS=-static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
第二部:Qt/qt里有configure.exe
用命令行加参数调用
./configure -release -static -fast
正在编译。希望能解决。
MicroSky2813 2010-02-04
  • 打赏
  • 举报
回复
linux可能要交叉编译
MicroSky2813 2010-02-04
  • 打赏
  • 举报
回复
\qt-embedded-linux-opensource-src-4.5.0\有个configure啊,我刚解压了一个看了看
lijuan_nie 2010-02-04
  • 打赏
  • 举报
回复
1楼的建议我不是很明白,
我现在是安装了qt-x11-opensource-src-4.5.0 到/usr/local/Trolltech/QT-4.5.0
和qt-embedded-linux-opensource-src-4.5.0 到/usr/local/Trolltech/QT-Embedded-x86 QT-Embedded-arm
qt-embedded我给安装了x86的和arm的
静态编译QT的话是编译QT-4.5.0里面的还是arm的?
后面的配置qmake.conf是配置arm里面的吗?
之后Qt/qt 的configure -release -static -fast在linux下是怎么配置呀?
是./configure -release -static -fast 吗?
MicroSky2813 2010-02-04
  • 打赏
  • 举报
回复
http://blog.csdn.net/MicroSky2813/archive/2010/02/01/5278096.aspx
我做过windows的静态编译

linux下也一样
先静态编译Qt,然后再静态编译程序

:<QTDIR>\mkspecs\ 目录下找你的系统环境和编译器然后配置qmake.conf
Qt/qt 的configure -release -static -fast
再make静态编译Qt,就做出了静态的Qt 连接
lijuan_nie 2010-02-04
  • 打赏
  • 举报
回复
的确悲剧了
MicroSky2813 2010-02-04
  • 打赏
  • 举报
回复
http://www.cuteqt.com/blog/?p=289

1)在编译Qt-Embedded的时候出现这个错误
原因:可能是./configure 的时候没加 -embedded arm 这个参数,或者-embedded 其他

悲剧了,你是为了交叉编译到arm上吧
lijuan_nie 2010-02-04
  • 打赏
  • 举报
回复
编译完了,但是运行程序的时候报错。
我先改变环境变量指向我刚才静态编译的库。
然后qmake -project
然后qmake -spec /usr/local/Trolltech/Qt-Embedded-arm/mkspecs/qws/linux-arm-g++
再make
报错:/usr/local/Trolltech/QtEmbedded-4.5.0/include/QtCore/qatomic_i386.h:127:error impossible
constraint int 'asm'
是怎么回事呀?

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧