试验环境是虚拟机下的32位win10+VS2015,按照某个unofficial builds上给出的补丁成功编译出了若干组QT的4.8.7版本静态库。为了把它们集合到同一目录下,所有版本的构建目录都是用的同一个,用 -qtlibinfix s 参数给32for64位的lib加个后缀来跟32位lib区分。只是构建好之后,给目录改个名防止被其他版本冲掉。
第一组是在“VS2015 开发人员命令提示”中编译出来的纯32位的静态库,这个没问题。
第二组是在“VS2015 x86 x64 兼容工具命令提示符”中编译出来的,这个是在32位系统下构建64位程序的静态库,由于bin目录下编译出的可执行文件无法运行,所以只有用如下步骤代替:
1、configure -opensource -confirm-license -static -nomake examples -nomake demos -qtlibinfix s
2、在得到64位的qmake.exe但无法运行后提示出错,将第一组的bin目录下所有exe文件拷到现在的bin目录下,修改qmake目录中的Makefile.win32防止重新编译qmake
3、重新运行configure -opensource -confirm-license -static -nomake examples -nomake demos -qtlibinfix s
4、打开顶级的Makefile文件,把FORCE符号全部删掉
5、把系统时间拨到编译第一组的时间之前,若不这么做,bin目录下所有拷来的exe文件会因为过期而被重新编译得到的64位程序冲掉,导致无法运行
6、nmake
在命令行下编译连接都没有任何问题,问题在于在VS2015下编译,VS不认可我这个库,提示