需要重新编译
qmake
,使之编译程序时为静态(
static
)而非共享(
share
)
- 修改
安装目录/mkspecs
文件夹下的win32-g++/qmake.conf
,分别找到并修改QMAKE_LFLAGS = -static
和QMAKE_LFLAGS_DLL = -static
,以指定编译出的
qmake
的编译模式
- 打开Qt 4.8.6 Command Prompt(不要以管理员身份运行),设置
set QMAKESPEC=win32-g++
,并配置configure -confirm-license -opensource -prefix "C:\Qt\4.8.6" -debug-and-release -static -platform win32-g++ -nomake demos -nomake examples -nomake tests -fast -mp
,注意C:\Qt\4.8.6
应该对应当前qt的安装路径
- 编译完
mingw32-make install
一下
- 最初编译时设定的安装路径是
F:\Qt\Qt_4.8.6_static
,如果想将它复制到其他盘符,并且改名,例如: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
,出现:qt_prfxpath=C:\Qt\Qt_4.8.6_static
,可以看出这是原始的安装路径。
我们不可以手动去修改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=⋯"
,如此一来,任意路径有效。