• 8313阅读
  • 8回复

[提问]Qt4.8.1编译安装最后出现问题 [复制链接]

上一主题 下一主题
离线roywillow
 

只看楼主 倒序阅读 楼主  发表于: 2012-04-04
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

只看该作者 1楼 发表于: 2012-04-05
我也遇到了这个问题,感觉是一个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

只看该作者 2楼 发表于: 2012-04-05
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

只看该作者 3楼 发表于: 2012-04-05
回 2楼(facat) 的帖子
谢谢指导!真的解决了!
我目前只是把winmain下的makefile.release中的那一行的/改成了\,没有动$(CHK_DIR_EXISTS),然后install就完全顺利进行了
仔细看了一下好像就这一行的斜杠跟其他的不同……真是奇怪的问题呢……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线roywillow

只看该作者 4楼 发表于: 2012-04-05
回 2楼(facat) 的帖子
我能顺便再问一个问题吗
我这边编译完之后发现似乎没有编译文档文件,是配置的时候缺少了参数?有没有方法单独编译一遍?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线facat

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

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

只看该作者 6楼 发表于: 2012-04-06
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

只看该作者 7楼 发表于: 2012-06-25
敢问楼主,QT 4.8.1怎么静态编译呢?我装的是Qt SDK 1.2.1
离线roywillow

只看该作者 8楼 发表于: 2012-06-25
回 7楼(ktang1220) 的帖子
管他是不是SDK,只要你有源码有编译器就行
直接下载源码从源码编译应该还需要perl和python
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个