在网上直接下载别人编译好的Qt库,为自己使用省了不少事。但往往也会遇到些问题,其中
Qt version is not properly installed,please run make install
Qt没有被正确安装,请运行make install
这个问题是比较常见的一个。
网上看了一个帖子,终于明白原因所在,原来是qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径。如果直接拷贝过来使用,自己的路径结构与原来不同,则Qt库就不能正常使用。提示就是
Qt version is not properly installed,please run make install
Qt没有被正确安装,请运行make install
既然路径信息是内嵌在qmake.exe中了,应该是没法通过修改配置的方式解决这个问题了。只能对qmake.exe下手了。
(修改前,别忘了先备份一下哦)
用16进制编译器,打开qmake.exe文件,搜索
71 74 5f 70 72 66 78 70 61 74 68 3d
( qt_prfxpath  =)

看到了吧,这里有C:/QT/5.0.1-rel-static,说明编译安装是在这个目录的。要把这段内容改成我们要用的目录才行。比如改成D:/QT/5.0.1-rel-static。注意一点,修改路径时,新路径比原来路径长,长出的部分,是覆盖后面的00,如果比原来短,要把短的部分改成00.就是不要改变原文件大小,否则会出错。
是不是改完就OK了呢?别急,会不会还有其它地方也记录了路径信息呢?查找43 3a 2f 51 54 2f 35 2e 30 2e 31 2d 72 65 6c 2d 73 74 61 74 69 63  (C:/QT/5.0.1-rel-static),发现一共有17处路径,依次修改,保存。再试试,问题解决啦。

qt_prfxpath=C:/QT/5.0.1-rel-static
qt_docspath=C:/QT/5.0.1-rel-static/doc
qt_hdrspath=C:/QT/5.0.1-rel-static/include
qt_libspath=C:/QT/5.0.1-rel-static/lib
qt_lbexpath=C:/QT/5.0.1-rel-static/libexec
qt_binspath=C:/QT/5.0.1-rel-static/bin
qt_plugpath=C:/QT/5.0.1-rel-static/plugins
qt_impspath=C:/QT/5.0.1-rel-static/imports
qt_qml2path=C:/QT/5.0.1-rel-static/qml
qt_adatpath=C:/QT/5.0.1-rel-static
qt_datapath=C:/QT/5.0.1-rel-static
qt_trnspath=C:/QT/5.0.1-rel-static/translations
qt_xmplpath=C:/QT/5.0.1-rel-static/examples
qt_tstspath=C:/QT/5.0.1-rel-static/tests
qt_hpfxpath=C:/QT/5.0.1-rel-static
qt_hbinpath=C:/QT/5.0.1-rel-static/bin
qt_hdatpath=C:/QT/5.0.1-rel-static

手工改有时也挺麻烦的,做了一个小工具,自动搞定。
http://pan.baidu.com/share/link?shareid=308319&uk=673227135

手工改有时也挺麻烦的,以后做一个修改的程序,自动搞定。
最后感谢一下参考帖子作者,帖子链接如下
http://blog.csdn.net/jiangcaiyang123/article/details/8301535
======================================================================================
在roywillow的提醒下,试了qt.conf,果然更方便的解决了问题,不需要这种暴力修改方式了。
具体方法,在qmake.exe同一文件夹下,创建一个qt.conf文件(ANSI格式)
内容为
[paths]
Prefix = D:/Qt/5.0.1-rel-static
(路径根据实际情况设)
问题解决。注意,编码一定要ANSI格式,不能用UTF-8。路径分隔符要"/"或"\\"
===========================
zzhouqianq提醒下,更简单了一步,qt.conf文件内容写为
[paths]
Prefix = ..

即可,这样,对任何路径,都无需要再做修改了

 

原文链接:http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=1262&uid=123401

http://blog.csdn.net/caoshangpa/article/details/72654972

qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)的更多相关文章

  1. Qt Creator编译时:cannot open file 'debug\QtGuiEx.exe' File not found

    Qt Creator编译时:cannot open file 'debug\QtGuiEx.exe' File not found 利用Qt Creator编译工程时,出现如题目所示的错误,其中红色部 ...

  2. apt 根据注解,编译时生成代码

    apt: @Retention后面的值,设置的为CLASS,说明就是编译时动态处理的.一般这类注解会在编译的时候,根据注解标识,动态生成一些类或者生成一些xml都可以,在运行时期,这类注解是没有的~~ ...

  3. .net postsharp编译时生成的代码?

    使用PostSharp进行AOP框架设计:一个简单的原型   AOP已经不是一个什么新名词了,在博客园使用关键字搜索可以查出n多条关于AOP的介绍,这里就不再赘述了. 在Bruce Zhang's B ...

  4. 转载-- Qt Creator编译时make: arm-linux-g++: command not found 错误!

    前提是已经配置好交叉编译器,但是qt creator找不到. 解决方法: 修改 /usr/local/Trolltech/QtEmbedded-4.7.0-arm/mkspecs/qws/linux- ...

  5. 一个极为简单的方法实现本地(离线)yum安装rpm包

    首先,我要关心的问题仍然是如何离线或者本地yum安装rpm包?这其中的关键当然是获取rpm包到本地,这其中的麻烦事是去解析依赖关系.然而,我发现一个极为简单的方法可以不用操心rpm包依赖关系,不多不少 ...

  6. Qt Creator编译时提示找不到“ui_xxx.h”文件

    解决方案: 在对应工程的*.pro文件里加上: QT+= widgets 则在编译过程中对应的“xxx.ui”文件会自动生成“ui_xxx.h”文件.

  7. Openssl - Static libraries (w32, mingw) 以及对Qt静态编译时的设置

    Openssl static libraries created for Windows 32bit using MinGW compiler   Compiled with:       ./Con ...

  8. Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

    When compiling Qt you can choose one of these options based on the configure command line: no OpenSS ...

  9. 【Andrioid】在Gradle编译时生成一个不同的版本号,动态设置应用程序标题,应用程序图标,更换常数

    写项目的时候常常会遇到下面的情况: 1.须要生成測试版本号和正式版本号的apk 2.測试版本号和正式版本号的URL是不一样的 3.測试版本号和正式版本号的包名须要不一致,这样才干安装到同一部手机上面. ...

随机推荐

  1. BZOJ1010玩具装箱 - 斜率优化dp

    传送门 题目分析: 设\(f[i]\)表示装前i个玩具的花费. 列出转移方程:\[f[i] = max\{f[j] + ((i - (j + 1)) + sum[i] - sum[j] - L))^2 ...

  2. HDU 1081 To The Max - 最大字段和

    传送门 题目大意: 求一个矩阵的最大子矩阵和. 题目分析: 刚开始考虑了一下dp方程的递推,但是不好转.简便的方法是预处理sum[i][j]表示第i行的前j个元素之和,之后\(n^3\)枚举子矩阵就可 ...

  3. C# WPF 多个window 相互覆盖的次序控制 不用topmost

    原文:C# WPF 多个window 相互覆盖的次序控制 不用topmost   WindowInteropHelper mianHanel = new WindowInteropHelper(Mai ...

  4. Call、Apply和Bind

    首先说一下bind,灵活的通过bind来改变this指针 bind方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this, 传入bind ...

  5. 初探js

    第一章   1.JS的位置 1-1.行间 1-2.内嵌 1-3.外联 2.JS的标签位置 页面中的代码在一般情况下会按从上到下的顺序,从左往右的顺序执行. 因此当JS放在了元素上面的时候,就不能正常执 ...

  6. 概率论经典问题 —— 三个事件 A、B、C 独立 ≠ 三个事件两两独立

    三个事件 A.B.C 相互独立?三个事件两两独立? A:第一次正面朝上: B:第二次正面朝上: C:第一次和第二次结果不同: P(AB)=P(A)P(B): P(AC)=1/4=P(A)P(C)(不是 ...

  7. 全栈工程师之路(二)—— JavaScript(网页前端脚本语言)

    javascript 是可以运行在网页前端的脚本语言,可以基于 html 之上实现更丰富的交互(网页内容的交互显示).异步回调.多线程.定时器.动画等. hello_world.html <ht ...

  8. Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ignore等7个属性,还可以横竖分开)

    1.Qt布局的作用 Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而 ...

  9. 从FrameworkElement对象创建Cursor对象

    原文:从FrameworkElement对象创建Cursor对象 Normal 0 false false false EN-US ZH-CN X-NONE MicrosoftInternetExpl ...

  10. Leetcode 328 Contains Duplicate set和map应用

    找出数组中重复的数,裸的map和set题 class Solution { public: bool containsDuplicate(vector<int>& nums) { ...