当前位置:首页 » 编程软件 » 高版本qt给低版本编译

高版本qt给低版本编译

发布时间: 2023-03-17 19:45:18

① 求助QT5.4 安装在win8.1后无法编译

关于QT安装时出现错误请参照我的上一篇文章http://hi..com/whyme%CE%DE%CF%DE/blog/item/91103d1a71f4aed5e2fe0b65.html
现在说一下编译运行出错的解决办法:
说明:redhat红帽5.4有点太老了,所以运行最新的QT时,出现了各种问题,最主要的就是各种库的问题:
(1)undefined reference to `FcFreeTypeQueryFace'的问题
需要更新fontconfig,我用的是fontconfig-2.6.0.tar.gz,2.5.0我试了,出现了很多错误,不知道为什么2.6.0可以,
附下载地址http://115.com/file/be9m2r
解压到/usr/src 进入后 ./autogen.sh 然后终端中提示make,你就make,最后make install。完成。./autogen.sh也可以输入./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man 具体可能是./configure后指明了安在你想要安得地方吧(我用的是./autogen.sh)
如果期间遇到错误不要不耐烦,按照提示网络一下会有解决的办法的。
(2)undefined reference to 'FT_Library_SetLcdFilter'
这是由于freetype太旧的原因,也是一样,需要更新:
附下载地址:http://115.com/file/anwcxdfk
安装方法与(1)一样。也有安装(1)时可能有问题要先安装(2) 这个自己尝试吧,我是先(1)后(2)的。
还有就是我的系统是红帽企业版5.4,不是的或者版本不一样的,我不知道我的方法有没有效果。
(3)接下来应该有的例程就可以编译运行了,但是还有不能运行的,那是因为你的glibc太旧了,这个是c动态库。必须注意的是,几乎所有的应用程序都依赖于glibc的动态库,重新编译安装glibc必须非常谨慎,一旦出错可能导致系统无法继续使用。所以强烈建议阅读源码目录下的INSTALL。
附下载地址:http://115.com/file/e749sc6n
第一步是配置glibc,出于安全的考虑,glibc不允许在源码目录树下编译,必须新建一个目录,然后在新建目录下运行configure,我就在/usr/src下建了一个glibc文件夹mkdir glibc。然后在新建目录里运行解压缩文件中的config,在运行这个之前,先在终端运行需要加上优化开关export CFLAGS="-g -O2 -march=i686" ,然后运行../glibc/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin 这样就不是默认安装的路径了安装在/usr下,这会将glibc安装为linux系统的标准库。
执行make -j 。glibc的编译相当耗时,可以给make加上-j选项并行编译glibc。make -j
然后make install。
make时可能会有错误我就遇到了以下错误,我是这么解决的:
1、在编译glibc的过程中可能出现错误:“../sysdeps/i386/fpu/s_frexp.S:66: Error: invalid identifier for ".ifdef"”,解决方法是:
1)、在glibc源码目录下找到文件:nptl/sysdeps/pthread/pt-initfini.c,找到第46行附近:asm ("\n#include "defs.h"");在其后添加代码:
asm ("\n#if defined __i686 && defined __ASSEMBLER__");
asm ("\n#undef __i686");
asm ("\n#define __i686 __i686");
asm ("\n#endif");
2)、在glibc源码目录下找到文件:sysdeps/unix/sysv/linux/i386/sysdep.h,找到第30行附近:#include <tls.h>,在其后添加代码:
#if defined __i686 && defined __ASSEMBLER__
#undef __i686
#define __i686 __i686
#endif
重新make
2、在编译glibc的过程中可能出现错误:“./sysdeps/i386/i686/multiarch/strcmp.S:78: Error: Error: unrecognized symbol type "gnu_indirect_function"unrecognized symbol type "gnu_indirect_function"”,原因是没有安装新版的binutils,如果依照前面的步骤安装了binutils-2.21应该不会出现该错误。(注第2个错误我没遇到)
注:还有一个地方不知道是哪一步遇到错误了需要安装libxml我在红帽的系统镜像中的server中找到了三个相关文件libxml2*.rpm安装即可!!!!!!
至此,重启reboot,打开QT运行例程,可能还有问题,我的就是还是有问题,解决办法如下:
把QT的安装目录和QT中的bin都添加为环境变量,在/etc/profile下,具体怎么填您应该知道吧,这里不提了。source /etc/profile一下
然后再点击QT的左边栏的项目在构建和运行的选项中,您可能哪里没有选择,一定要让你的项目有效和目录正确,QT的版本正确!!!QT的gcc编译目录正确,gcc一般用的是QT文件中自带的!!如果还不行,那就在你的在项目目录项运行make clean!!如果还不对!!!vi Makefile 可能是这里有问题,如果不会改,就干脆删了rm Makefiel。然后再在QT中运行一下。

② 新人求教,急.qt4.8.6无法编译

认真核对操作步骤:
1、修改环境变量工具推荐:Rapid Environment Editor。
修改前请先备份当前的环境变量。然后:
(1)检查系统变量path,删除有关mingw其他版本等信息,以免与后续的mingw32-make冲突。
(2)检查用户变量INCLUDE、LIB、PATH、MSDevDir和MSVCDir,删除有关\Microsoft Visual Studio\VC98的信息,因为它们会与后续的mingw32-make冲突,导致编译出错。
2、在电脑上安装mingw编译器,假设路径安装在C:\Qt\mingw32。将C:\Qt\mingw32\bin添加进环境变量path,打开DOS命令行输入gcc --version和g++ --version和mingw32-make --version验证编译器安装成功。我用的MinGW版本是V4.8.2,
3、解压qt-everywhere-opensource-src-4.8.6.zip并进入目录。例如:D:\qt-everywhere-opensource-src-4.8.6\
4、依次执行以下DOS命令:
(1)configure -debug-and-release -opensource -prefix "D:\Qt4.8.6" -platform win32-g++ -nomake demos -nomake examples
常见的使用选项说明:
-debug-and-release 编译debug和release版
-opensource 选择开源协议并确认
-platform win32-g++ 使用mingw编译
-prefix "D:\Qt4.8.6" 指定编译结果目录,如果未指定则默认当前
-shared 创建和使用共享Qt库
-static 创建和使用静态Qt库
-nomake demos -nomake examples 不编译例程
-nomake tests 不编译tests

-skip qtwebkit 忽略qtwebkit,因为编译它特别消耗时间

-mp 使用多核优化编译

(2)mingw32-make
(3)mingw32-make install
5、编译完成后,把C:\Qt\mingw32\bin\路径下的三个文件libgcc_s_dw2-1.dll、libstdc++-6.dll和libwinpthread-1.dll拷贝到D:\qt-everywhere-opensource-src-4.8.6\bin\。另外,也请把步骤1备份的环境变量还原。
6、修改Qt安装路径
最初编译时选择的路径是D:\Qt4.8.6\。如果想将它复制到其他盘符,并且改名,例如:C:\Qt\4.8.6_MinGW。这样一来会有问题吗?是的,会有问题,因为Qt有绝对路径依赖症。改名后C:\Qt\4.8.6_MinGW\bin\的exe执行程序都会出问题,要么程序打不开,要么多国语言发生异常。用记事本打开C:\Qt\4.8.6_MinGW\bin\qmake.exe,查找关键字“qt_prfxpath”,可以看到里面含有原始的安装路径。我们不可以手动去修改qmake.exe,真正有效的解决方法是:
在C:\Qt\4.8.6_MinGW\bin\路径下创建一个qt.conf文件,内容为
[paths]
Prefix = C:/Qt/4.8.6_MinGW

请注意:qt.conf文件必须是ANSI格式,并且Prefix的斜杠风格采取的是Linux的,而非Windows,否则会失效。或者使用"Prefix = .. ",如此一来,任意路径有效。

③ 如何在QTcreator5.1.1中添加其他版本的QT如何才能用这个开发QT4.8.5

在Qt选项页面内

  1. 点击Qt版本->添加->指定相应版本的qmake.exe文件(该文件在安装的Qt版本文件夹下的bin文件夹内)。之后可以在Qt版本页面内看到默认的“版本名称”和“qmake路径”,“版本名称”可以修改。



    ④ Qt更换版本后的编译问题

    在设置里重新指定 debuger 路径

    ⑤ QT交叉编译环境

    将安装全套的Qt开发环境,可以在PC端进行qt开发。

    Ubuntu14.04的Qt版本为5.2.1,16.04的Qt版本为5.5.1,高版本Qt库可以向下兼容运行低版本工具链编译的程序,因此这里选用5.2.1版本作为编译工具链。

    进入Qt工程目录中,目录下会有个<工程名>.pro文件,如果目录中存在<工程名>.pro.user文件,是之前qtcreator生成的配置文件,请先删除。然后运行:

    即可完成编译,编译好的程序可以放到树莓派上直接运行。

    另外,工程的配置可以通过修改 工程名.pro文件,例如添加链接库,只需要在文件中添加如下选项:

    添加c99支持:QMAKE_CFLAGS += -std=c99

    ⑥ vs 编译qt程序怎么设置qt版本

    (1) 删除源码包中bin目录下的syncqt和syncqt.dat文件,如你不放心可将其改名或剪切到别的位置。如不修改将发生 Perl not found in environment - cannot run syncqt 错误。
    (2) 修改\mkspecs\win32-msvc2010下的qmake.conf文件,将其中的
    QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-改成QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t
    注意末尾的”-“号区别。如不修改将来如有项目使用wchar_t,qt却编译成wchar_t-,编译会导致连接错误,提示找不到Qwstring;
    QMAKE_CFLAGS_RELEASE,QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO,QMAKE_CFLAGS_DEBUG这3处后面的MD,MDd对应改成MT,MTD,以实现在没有VC库的电脑也能运行Qt程序。
    (3) 修改src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,将本行替换成return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", (selectedString));(由于word自动排版问题,请各位直接将以上英文部分一次性全复制,其实它们是一行,不要分行复制)。
    如不修改将出现编译Webkit 时会出现 U1077错误。

热点内容
linux安全模式 发布:2024-05-19 07:27:25 浏览:175
为什么安卓手机安装不了cpk 发布:2024-05-19 07:22:21 浏览:311
pythonempty 发布:2024-05-19 07:15:16 浏览:928
路由器虚拟服务器搭建 发布:2024-05-19 07:15:15 浏览:997
方舟编译器何时推送 发布:2024-05-19 07:15:10 浏览:597
魔兽世界自动钓鱼脚本 发布:2024-05-19 06:43:07 浏览:495
cbs加密 发布:2024-05-19 06:29:56 浏览:201
ssis存储过程 发布:2024-05-19 06:21:31 浏览:631
怎样删除小视频文件夹 发布:2024-05-19 05:49:29 浏览:589
开启php短标签 发布:2024-05-19 05:44:12 浏览:473