查看完整版本: [-- Qt4.8.1编译安装最后出现问题 --]

QTCN开发网 -> Qt基础编程 -> Qt4.8.1编译安装最后出现问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

roywillow 2012-04-04 00:14

Qt4.8.1编译安装最后出现问题

Qt4.8.1静态编译挺顺利的,但是编译完执行mingw32-make install的时候,却出现了问题

cd src\tools\uic\ && mingw32-make -f Makefile install
mingw32-make[1]: Entering directory `E:/qtbuild/src/tools/uic'
mingw32-make -f Makefile.Release install
mingw32-make[2]: Entering directory `E:/qtbuild/src/tools/uic'
copy /y "..\..\..\bin\uic.exe" "e:\Qt4.8.1-w32-static\bin\uic.exe"
已复制         1 个文件。
mingw32-make[2]: Leaving directory `E:/qtbuild/src/tools/uic'
mingw32-make[1]: Leaving directory `E:/qtbuild/src/tools/uic'
cd src\winmain\ && mingw32-make -f Makefile install
mingw32-make[1]: Entering directory `E:/qtbuild/src/winmain'
mingw32-make -f Makefile.Release install
mingw32-make[2]: Entering directory `E:/qtbuild/src/winmain'
copy /y "..\..\lib\qtmain.prl" "e:\Qt4.8.1-w32-static\lib\qtmain.prl"
已复制         1 个文件。
命令语法不正确。
mingw32-make[2]: *** [install_target] Error 1
mingw32-make[2]: Leaving directory `E:/qtbuild/src/winmain'
mingw32-make[1]: *** [release-install] Error 2
mingw32-make[1]: Leaving directory `E:/qtbuild/src/winmain'
mingw32-make: *** [sub-winmain-install_subtargets-ordered] Error 2


印象中这个问题之前也出现过,似乎是因为设置了-prefix来指定安装目录的原因。但是我确实想指定这么一个目录,否则中间文件和最终的库混在一起很难办。
到底该如何解决?

facat 2012-04-05 08:50
我也遇到了这个问题,感觉是一个bug
找到src/winmain/Makefile.Debug
搜索这一行install_target: all FORCE
整段改成这个:
install_target: all FORCE
    @$(CHK_DIR_EXISTS) c:$(INSTALL_ROOT)\QtLib\lib $(MKDIR) c:$(INSTALL_ROOT)\QtLib\lib
    -$(INSTALL_FILE) "..\..\lib\qtmaind.prl" "c:$(INSTALL_ROOT)\QtLib\lib\qtmaind.prl"
    @if not exist c:$(INSTALL_ROOT)\QtLib\lib\pkgconfig  $(MKDIR) c:$(INSTALL_ROOT)\QtLib\lib\pkgconfig
    -$(INSTALL_FILE) "..\..\lib\pkgconfig\qtmaind.pc" "c:$(INSTALL_ROOT)\QtLib\lib\pkgconfig\qtmaind.pc"
    -$(INSTALL_FILE) "$(DESTDIR_TARGET)" "c:$(INSTALL_ROOT)\QtLib\lib\$(TARGET)"
注意@前面是有一个tab的啊。
这样就可以继续install了

facat 2012-04-05 08:54
mingw32-make的错误提示不够详细,我是用nmake的时候才具体知道是什么错误的。
修改的那一行原来是
@$(CHK_DIR_EXISTS) c:$(INSTALL_ROOT)/QtLib/lib/pkgconfig $(MKDIR) c:$(INSTALL_ROOT)/QtLib/lib/pkgconfig
其实我只是将 / 改成了 \ ,讲$(CHK_DIR_EXISTS)直接写成了if not exist。但我感觉只要把原来的 / 删除,然后重新输一遍 / 也是一样的,可能是编码问题。

roywillow 2012-04-05 23:20
谢谢指导!真的解决了!
我目前只是把winmain下的makefile.release中的那一行的/改成了\,没有动$(CHK_DIR_EXISTS),然后install就完全顺利进行了
仔细看了一下好像就这一行的斜杠跟其他的不同……真是奇怪的问题呢……

roywillow 2012-04-05 23:23
我能顺便再问一个问题吗
我这边编译完之后发现似乎没有编译文档文件,是配置的时候缺少了参数?有没有方法单独编译一遍?

facat 2012-04-06 11:21
引用第4楼roywillow于2012-04-05 23:23发表的 回 2楼(facat) 的帖子 :
我能顺便再问一个问题吗
我这边编译完之后发现似乎没有编译文档文件,是配置的时候缺少了参数?有没有方法单独编译一遍?

你用 “mingw32-make docs” 试试
其实你可以看一下Makefile文件,发现却什么就单独编译什么。

roywillow 2012-04-06 21:14
makefile太多东西了没注意到docs这个部分
我这里编译却出现了一大堆错误,什么cannot link to、defined in more than one location,这些没问题吗?
并且最后只出来一大堆html,并且在E:/qt-everywhere-opensource-src-4.8.1/doc/src/declarative/qmlwebkit.qdoc:28: Cannot link to 'QML Web Browser' in qmlwebkit.html处挂掉了:无效的参数数量
不过检查了一下qt的源码发现里面似乎已经提供了qch……

ktang1220 2012-06-25 18:41
敢问楼主,QT 4.8.1怎么静态编译呢?我装的是Qt SDK 1.2.1

roywillow 2012-06-25 18:57
管他是不是SDK,只要你有源码有编译器就行
直接下载源码从源码编译应该还需要perl和python


查看完整版本: [-- Qt4.8.1编译安装最后出现问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled