• 29333阅读
  • 10回复

如何能让编译完的可执行文件是statically linked [复制链接]

上一主题 下一主题
离线5xinfeiyang
 
只看楼主 倒序阅读 楼主  发表于: 2011-11-27
小弟在Ubuntu中安装了arm-linux-gcc-3.4.1和qt-x11-opensource-src-4.5.3(配置时加了-static参数),简单写了个hello world程序(图形界面),小弟想在Ubuntu中编译生成可执行文件是脱离库的。用file 命令查看时总是显示hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped,如何能将其中的dynamically linked (uses shared libs)变成statically linked呀?
离线wxj120bw

只看该作者 1楼 发表于: 2011-11-27
回 楼主(5xinfeiyang) 的帖子
你尝试在pro加上这句CONFIG += static
PS:不知道对不对 好长时间没用了
离线5xinfeiyang
只看该作者 2楼 发表于: 2011-11-27

以下是我的hello.pro中的内容,其中CONFIG += static是加的,但是最后make生成的可执行文件file查看还是dynamically linked (uses shared libs) ,额,谢谢版主,我这个初学者问题真是不少,麻烦了
######################################################################
# Automatically generated by qmake (2.01a) ?? 11? 27 22:32:02 2011
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
CONFIG += static
# Input
SOURCES += hello.cpp
离线wxj120bw

只看该作者 3楼 发表于: 2011-11-27
回 2楼(5xinfeiyang) 的帖子
你从哪看出我时版主的?还有可以用必杀技 修改Makefile文件 将IFlag += static(IFlag这个变量记不清楚啦)
离线5xinfeiyang
只看该作者 4楼 发表于: 2011-11-28
我问的这些问题只有你回答我呀!这个。。。呵呵,行,我再尝试一下修改Makefile,参数我再百度一下看看,很感谢
离线wxj120bw

只看该作者 5楼 发表于: 2011-11-28
回 4楼(5xinfeiyang) 的帖子
论坛做这方面的人不多 所以回答你问题的自然就少了 呵呵...
离线yanxinorg
只看该作者 6楼 发表于: 2011-11-28
QT有运行库吧和JAVA的JRE一样
离线5xinfeiyang
只看该作者 7楼 发表于: 2011-11-29
哦,看样子我是挑了一条不归路呀,哈哈。QT运行应该是需要库了,否则不能这样吧,静态编译后也还是不行,我曾试过在S3C2410的开发板上运行动态编译的程序,就是提示缺少各种库。。。我逐个拷贝,最后提示是版本不对,实验箱的版本太老了(2004年左右买的华恒的箱子),然后就用这个新的al91sam9g45了,问题更多了。。。哎!!
离线ninsun

只看该作者 8楼 发表于: 2011-12-07
是不是gcc也需要静态编译来着....
离线XChinux

只看该作者 9楼 发表于: 2011-12-07
那你到底是要编译arm的?还是x86的?应该是前者吧?将你的Makefile/Makefile.Debug/Makefile.Release发上来看看。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线edsionte
只看该作者 10楼 发表于: 2011-12-20
回 9楼(XChinux) 的帖子
请问版主大人,动态编译的可执行文件,如果要在其他未安装qt的发行版上跑,是不是将所需库和可执行文件拷贝到一个目录下即可?
快速回复
限100 字节
 
上一个 下一个