我在编译libqxt时遇到以下问题。
config.bat生成文件,但显示一些警告:
c:UsersLukaszDownloadslibqxt-libqxt-7e0d3396b765>configure.bat
Testing for qmake...
Testing for mingw32-make...
Using mingw32-make.
Testing for optional external libraries.
If tests fail, some features will not be available.
Testing for Berkeley DB...
Berkeley DB disabled.
Testing for Zero Conf...
Zero Conf disabled.
Configuration successful.
Generating makefiles...
Project MESSAGE: building docs
Project MESSAGE: building core module
Project MESSAGE: building widgets module
Project MESSAGE: building network module
Project MESSAGE: building sql module
Project MESSAGE: building web module
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/tools/3rdparty/qdoc
3/qdoc3.pro
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/src/core/core.pro
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/src/widgets/widgets
.pro
Project MESSAGE: Warning: unknown QT: widgets
Project MESSAGE: Warning: unknown QT: widgets
Project MESSAGE: Warning: unknown QT: widgets
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/src/designer/design
er.pro
Project MESSAGE: Warning: unknown QT: widgets
Project MESSAGE: Warning: unknown QT: widgets
Project MESSAGE: Warning: unknown QT: widgets
Project MESSAGE: Warning: unknown QT: widgets
Project MESSAGE: Warning: unknown QT: widgets
Project MESSAGE: Warning: unknown QT: widgets
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/src/network/network
.pro
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/tools/jsonrpcclient
/jsonrpcclient.pro
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/src/sql/sql.pro
Reading C:/Users/Lukasz/Downloads/libqxt-libqxt-7e0d3396b765/src/web/web.pro
Makefiles generated. Run mingw32-make now.
mingw32几乎立即中断,但有一个异常:
c:UsersLukaszDownloadslibqxt-libqxt-7e0d3396b765>mingw32-make
mingw32-make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x421963)
资料来源是从官方网站下载的。运行configure和mingw32-make是README文件中描述的编译方式。这里怎么了?
答案很简单,出乎意料-mingw32-make在PATH环境变量中的括号("("符号)有很大问题。解决方案是从PATH中删除所有包含"(".的目录
可以使用以下语法在命令行中本地更改PATH(而不为任何其他程序更改它):set PATH=...
,例如,我的消毒路径是:
set PATH=C:QtSDKmingwbin;C:QtSDKDesktopQt4.8.0mingwlib;C:QtSDKDesktopQt4.8.0mingwbin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;
至于获取当前的PATH值,请使用语法:echo %PATH%
。