回复: QT静态编译疑问
#6 [5xinfeiyang 11-26 14:45]
原来是这样呀,那我可以在PC机上静态编译一个程序,在另一台没有安装QT也没有QT库的PC机上运行吗?这样的话可行吗?
#7 回 6楼(5xinfeiyang) 的帖子 [muqiujuan 11-26 16:28]
这个当然可以
#8 [5xinfeiyang 11-26 18:47]
恩,我重新配置了qt-x11(加上了-static等参数)后试了一下,在一个目录中进行编译生成可执行文件hello(10几M大小),然后把hello复制到了随便一个自己建立的文件夹下,执行也可以,这应该跟移植到另一台没有安装qt和qt库的机器上运行一样吧?还有我还是想问你一下最初的问题,移植到一个arm开发板中,或者可以将最后可执行程序需要的库挑出来移植到开发板而不全部移植,这个方法或者思路,谢谢你
#9 回 8楼(5xinfeiyang) 的帖子 [wxj120bw 11-27 22:22]
在linux下确认程序运行的平台 用file hello命令 看打印信息就知道了 只要可执行程序加载的库能找到
#10 [5xinfeiyang 11-27 22:33]
在linux下执行file hello显示hello: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped。
用arm-linux-readelf -a hello | grep "Shared library"查看显示
0x00000001 (NEEDED) Shared library:
0x00000001 (NEEDED) Shared library:
0x00000001 (NEEDED) Shared library:
0x00000001 (NEEDED) Shared library:
0x00000001 (NEEDED) Shared library:
0x00000001 (NEEDED) Shared library:
0x00000001 (NEEDED) Shared library:
这些库都要拷到开发板的/lib目录下吗?有些是链接,也要将其链接的库拷到开发板吧?但是太大了呀