(linux 编译qt)-编程知识网

linux qt creator怎么添加自己编译的库?

比如我需要添加一个叫*.so.*的文件,这个*.so文件在/etc目录下(随便定的目录) 在.pro文件里添加: LIBS += -L /etc/ -l* 在.cpp引用的时候,还需要把相关的头文件包含进去

怎样在ubuntu下安装Qt开发环境?

ubuntu自带的软件下载中心下载的Qt让人比较头疼,Qdesigner等可以正常使用,但是Qt的库函数不会下载,apt-get也无法下载的时候,需要手动安装。安装前确保有4G的剩余空间。安装过后可以删除2G安装用的文件。
1. 下载Qt Framework。进入网址

http://qt.nokia.com/downloads

,选择中间的标签LGPL,然后下载Qt libraries 4.7.0 for Linux/x11(199MB)
更新:找不到的话可以直接到

http://qt-project.org/downloads

,在页面中间的Qt Library里选最新的Qt libraries 4.8.3 for linux/X11 (223 MB)2. 解压文件。进到存放下载文件的目录下执行tar -zxvf qt-everywhere-opensource-src-4.7.0.tar.gz其中qt-everywhere-opensource-src-4.7.0.tar.gz是刚下载文件的文件名3. 默认情况下系统是没有g++编译环境的。需要手动安装。执行sudo apt-get install build-essential。如果提示找不到包可以更新一下源。方法为sudo gedit /etc/apt/sources.list编辑源列表。然后执行sudo apt-get update 4. 执行sudo apt-get install libx11-dev libfreetype6-dev libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev 5. 把解压后的文件夹拷贝到英文目录(非tmp)下,进入该文件夹执行./configure,然后选择o(开源),接着选择yes(同意)。运行结束后提示Just run ‘make’等信息后表示这步成功了。6. make。执行make,这步需要很长时间(我用了4个小时T_T) 7. 安装qt。执行sudo make install,这步较快,文件安装在/usr/local/Trolltech/Qt-4.7.0 8. 设置环境变量。执行vi ~/.bashrc 添加如下内容:QTDIR=/usr/local/Trolltech/Qt-4.7.0/PATH=$QTDIR/bin:$PATHMANPATH=$QTDIR/doc/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexport QTDIR PATH MANPATH LD_LIBRARY_PATH之后重启。如果不会用vi可以执行vi语句后输入:$回车,然后输入o进入输入模式,将上面的字段拷贝后按esc,然后输入大写的ZZ即可。 9. 接下来就可以按照qmake -projectqmakemake

ubuntu下qt如何编译c++源文件?

以下是编译QT源码的基本步骤:

1.源代码的获取 , 最新的是4.8.2版本。

2.解压代码 输入指令: tar zxvf qt-everywhere-opensource-src-4.8.2.tar.gz,解压出QT源代码。

3.执行./config生成makefile 输入指令: ./config 下面会出现提示,是使用the Commercial Edition还是Open Source Edition。 选择”o”,接着会出现一些提示关于license的信息,选择”yes”。

4.编译QT 等在Ubuntu中顺利下载了缺失的那3个lib后。再次重复第三步的 ./configure指令。 输入指令: make, 然后便可以顺利地生成Makefile文件。

5.安装QT 运行指令: sudo make install,需要几分钟的时间,系统会默认将Qt安装到目录:/usr/local/Trolltech/Qt-4.8.2。 验证安装完成:运行/usr/local/Trolltech/Qt-4.8.2/bin/designer,如果能够正常启动designer,则说明Qt已经安装好了。

6.设置环境变量7.测试环境变量

qt的程序在arm-linux-g++下怎么交叉编译?

用交叉编译工具(arm-linux-g++等)把你自己的qt程序用嵌入式版本的qt库交叉编译一下然后烧写到开发板上就可以执行了,当然你qt程序所用到的库也要放上去,并设置到路径(QTDIR,PATH,LIBRARY_PATH)等等

ubuntu下怎么打包写好的Qt程序?

你可以参考SQLiteStudio这个Qt写的跨平台SQLite管理工具,它自己打包了依赖的Qt库,可以做到解压即用,兼容不同Linux发行版.道理其实跟Windows版Qt程序自带Qt库差不多.

编译前给连接器传一个参数:

说明:

-Wl 表示告诉编译器将后面的参数传递给链接器.

rpath是gcc的一个参数,当程序被加载时,会搜寻rpath目录,寻找共享库.

rpath添加的目录信息保存在可执行文件中.

$ORIGIN表示可执行文件所在的目录.

也就是运行时程序会先去自己所在的目录的lib里去加载依赖库,没有的话再去系统库里找.

如果你的程序在编译时没有传递rpath参数,那你也可以用patchelf来修改你程序的rpath:

注意:patchelf修改文件后再strip会导致文件损坏.

所以应该先用strip删除符号表缩小二进制文件,然后再用patchelf设置rpath.

题外话,Android上既没有glibc库,也没有库链接器ld-linux.so.3.

如果你要把Debian ARM(如树莓派Raspbian)上的软件放到Android上跑,你一样可以打包程序依赖的共享库,让程序也能跑在Android上,比如PHP:

也就是你把库链接器ld-linux-armhf.so.3和PHP依赖的库都放到/data/local/tmp/web/lib里,然后设置个别名,就能在Android的adb shell里运行树莓派的PHP了.

当然,你也可以用patchelf设置PHP的interpreter和rpath,效果差不多: