qt编译arm静态库
Ⅰ linux 下用arm体系QT编译问题(目前我系统里有X86 和 arm体系(老师编好的)的QT各一个)
貌似是缺少系统库,有些版本的linux编译qt是会出现缺少系统库而导致编译不成功的问题,不是很推荐用最新的编译器来编译,其实2.4的内核和3.4.5的编译器做qt就已经足够了,你可以去查查看那些版本的linux下可以成功的编译qt,安装的时候尽可能把开发用的库都选上,不然就只有自己再去打补丁,
仅作参考
Ⅱ Qt Creator 怎样设置才能实现静态编译
qt默认的编译方式是动态编译的,但是有时候编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译程序,qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
1.将c:\qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的qmake_lflags
=
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
改为
qmake_lflags
=
-static
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到qt
command
prompt并运行,输入命令:
configure
-static
-debug-and-release
-no-exceptions
-l
"c:\qt\2010.05\qt\include"
-l
"c:\qt\2010.05\qt\lib"
-l指定一下路径,防止用到vc的头文
Ⅲ qt 5添加 windows 静态库
qt中添加windows vs 生成的静态库,需要注意:
qt使用的编译器版本要和vs版本,操作系统位数要对应。
例如:用 vs2015 x86生成的了release 和debug两种静态库
相应的QT也要配置vs2015 32 编译器。
把之前vs 生成的静态库的头文件和库准备好
打开qt 中打卡 工程 .pro文件 右键选择 添加库选择外部库
这样我们release和debug版的静态库都添加近工程了。
如果之前已经生成过编译后的文件夹
再次生成时可能遇到 error LNK2019: 无法解析的外部符号 之类的错误信息。
这个问题只要把上面的文件夹删除,从新编译即可。
Ⅳ 如何编译arm上运行的qt2可执行文件
编译好的QT的程序,一般会有几个.CPP\.h文件,这么多的文件我们要怎么样编译。首先,我们需要安装QT版本的库,一定要注意,这个库文件一定和开发板上的是同一个库。我们假设这个库名字叫qtembed450-arm。以下步骤一定要注意:
1.安装目录一定要在“/usr/local/”下;
2.安装成功后,这步非常关键,一定要设置环境变量,而且,我们要设置三个环境变量,这样做有三个目的:①可以在任何路径下用库里的命令②编译时候可以指定编译规则为arm-linux-g++③编译时候可以指定到所需要的库文件。那么安装后,输入一下命令:gedit /root/.bashrc.这个命令执行后就进入到设置环境变量的地方,我们要加入以下三个环境变量的设置:
export PATH=$PATH:/usr/local/qtembed450-arm/bin
export LD_LIBRARY_PATH=$LD_LTBRARY_PATH:/usr/local/qtembed450-arm/lib
export QMAKESPEC=/usr/local/qtembed450-arm/mkspecs/default
以上设置非常的重要,非常的关键。呵呵,先照着设置,具体原因我会细谈。注意,我编译用的很重要的qmake-arm 命令,就在/usr/local/qtembed450-arm/bin下,可以打开看看哦!环境变量设置好后,用which qmake-arm 命令来确认下是否成功,呵呵。
3.准备工作做到这里,算是进行一半了,哎,真累啊!还要接着写呢。接下来我们要把我们的编译好的QT程序的文件夹打开,把里面的 .CPP/.h文件拷贝出来,新建立一个文件夹;
4.把以上的文件里的.cpp .h文件复制后新建立一个文件夹。
5.新文件夹建立后,在linux终端中进入到该文件夹所在目录下,执行这个命令:qmake-arm -project命令,千万注意,-project 和arm之间一定要有空格啊!该命令执行后,会生成一个.pro文件,紧接着呢,执行qmake-arm命令,该命令执行后呢,会生成一个Makefile文件,这步很关键哦,没有这步就不会有Makefile文件,一般在这步会出现很多错误,就是库没有发现之类,这个时候,一定要检查前面的步骤,仔细检查看是否是错误。我们这个时候打开Makefile文件看一下,会发现,里面的编译已经变成arm-linux-g++。这个时候,就踏实,接下来怎么办?还用问吗,直接make下就好了,哈哈,简单吧!看到上面的qtmyjpg文件了吗?这个是可以在开发板上运行的哦!接下来不用我说了吧,直接发送到开发板上执行,可以看到图片喽!
6.下到开发板上之后呢,通常会发现没有权限,执行chmod +x qtmyjpg 就可以了,但是注意,要执行这个qtmyjpg文件,一定要这样输入命令:./qtmyjpg -qws为什么需要加这个参数呢?很简单,你不加执行时会出现错误原因,自己看下吧,哈哈!
7.一般这个时候触摸屏需要矫正。进入“/usr/tslib/bin/”,查看里面的文件,有一个“ts-calibrate”文件,执行这个文件,./ts-calibrate 后,可以看到LCD屏幕上出现十字点,用触摸笔点一下就可以,至此,整个QT在LCD上显示整理完毕,花了我半下午时间加上对曹老师的请教,终于完成,嘿嘿!赶紧试试哦!
Ⅳ qt arm 版本编译问题
这个警告
> This however does *not* affect NDK-generated code because, very fortunately,
> none of the stable ABIs exposed by the NDK depend on this mangling (this has
> been checked carefully), so whichever toolchain you use, your code will run
> on all Android systems
赶脚不会对代码有什么影响啊..
CFLAGS += -Wno-psabi
关掉它就ok
Ⅵ 如何用qt-4.8.5源代码配置arm版本qt
下面是编译选项,自己可以修修改改
./configure -opensource -embedded arm
-xplatform qws/linux-arm-gnueabi-g++ -no-webkit -qt-libtiff -qt-libmng
-qt-libjpeg -qt-libpng -no-qt3support -nomake demos -nomake docs -nomake
examples -little-endian -host-little-endian -no-xcursor
-no-mouse-linuxtp -qt-mouse-tslib -I/usr/local/tslib/include
-L/usr/local/tslib/lib -fast -lrt -confirm-license
PS:
在解压包的
mkspecs/linux-arm-gnueabi-g++ 目录下需要配置一下你的 linux-arm-gnueabi-g++
路径,最好是设置成绝对路径,否则可能你配置的交叉编译器没有添加到环境变量里面不好~ (如果配置了环境变量的话,那就没必要设置了)
我的给你参考一下,就是原配了~
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
TARGET_PLATFORM = unix
TEMPLATE = app
CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index
QT += core gui
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabi-gcc
QMAKE_CXX = arm-linux-gnueabi-g++
QMAKE_LINK = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabi-obj
QMAKE_STRIP = arm-linux-gnueabi-strip
load(qt_config)
接下来是QT CREATE配置
工具-->选项--->构建和运行
1. 编译器: 点击添加: "名称"随意
"编译器路径" **/arm-none-linux-gnueabi-g++
找到你的编译器,我这里是用ARM的
其他不填也行.
2.Qt Versions: 点击添加:找到通过源码编译好的qmake文件. 例如:/usr/local/Qt-4.8.6/bin/qmake
3.构建套件: 点击添加: "名称"随意, 重点是 "编译器"跟"QT版本", 分别选择刚刚添加的两项.
调试器:如果是桌面环境那就选桌面的, 如果是在嵌入式中的,那不要也可以..
Ⅶ 如何编译ARM版本LINUX QT4.5
编译安装内核 下载并解压内核 解压内核:tar xf linux-2.6.XX.tar.xz 定制内核:make menuconfig 参见makefile menuconfig过程讲解 编译内核和模块:make 生成内核模块和vmlinuz,initrd.img,Symtem.map文件 安装内核和模块:sudo make moles_install install 复制模块文件到/lib/moles目录下、复制config,vmlinuz,initrd.img,Symtem.map文件到/boot目录、更新grub 其他命令: make mrprobe:命令的作用是在每次配置并重新编译内核前需要先执行“make mrproper”命令清理源代码树,包括过去曾经配置的内核配置文件“.config”都将被清除。即进行新的编译工作时将原来老的配置文件给删除到,以免影响新的内核编译。 make dep:生成内核功能间的依赖关系,为编译内核做好准备。 几个重要的Linux内核文件介绍 config 使用make menuconfig 生成的内核配置文件,决定将内核的各个功能系统编译进内核还是编译为模块还是不编译。 vmlinuz 和 vmlinux vmlinuz是可引导的、压缩的内核,“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制,Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。
Ⅷ QT交叉编译时怎么添加静态库,急!!!
INCPATH = -I../EmbedSky/qt-4.5/__install/arm/mkspecs/default -I. -I../EmbedSky/qt-4.5/__install/arm/include/QtCore -I../EmbedSky/qt-4.5/__install/arm/include/QtNetwork -I../EmbedSky/qt-4.5/__install/arm/include/QtGui -I../EmbedSky/qt-4.5/__install/arm/include -I. -I. -I.
在这里增加你编译的静态库。。。可以试试,我也是新手