【发布时间】:2014-05-31 10:31:01
【问题描述】:
当我想在 Windows 上构建 Qt 5.3 时,它给了我一个错误:
mingw32-make[4]: Entering directory 'c:/qt-5.3.0/qtbase/src/corelib'
g++ -c -include .pch\release\qt_pch.h -pipe -fno-keep-inline-dllexport -O2 -std=
gnu++0x -fexceptions -mthreads -frtti -Wall -Wextra -DUNICODE -DQT_NO_USING_NAME
SPACE -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -D_CRT_SECURE_NO_WARNINGS -DQT_ASCII_
CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -
DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -D_USE_MATH_DEFINES -DQT_USE_ICU -DQT_COR
E_LIB -DQT_NO_DEBUG -I. -I"..\..\include" -I"..\..\include\QtCore" -I"..\..\incl
ude\QtCore\5.3.0" -I"..\..\include\QtCore\5.3.0\QtCore" -I"tmp" -I"global" -I"..
\3rdparty\harfbuzz\src" -I"..\3rdparty\md5" -I"..\3rdparty\md4" -I"..\3rdparty\s
ha3" -I".moc\release" -I"C:\JPEGLIB\jpeg-build\include" -I"C:\qt-5.3.0\qtwebkit\
Source\WebCore\plugins" -I"C:\gnuwin32\include" -I"C:\icu\icu\dist\include" -I".
.\3rdparty\pcre" -I"..\..\mkspecs\win32-g++" -o .obj\release\qregularexpression.
o tools\qregularexpression.cpp
tools\qregularexpression.cpp: In function 'int convertToPcreOptions(QRegularExpr
ession::PatternOptions)':
tools\qregularexpression.cpp:778:20: error: 'PCRE_UCP' was not declared in this
scope
options |= PCRE_UCP;
^
tools\qregularexpression.cpp: At global scope:
tools\qregularexpression.cpp:831:5: error: 'pcre16' does not name a type
pcre16 *compiledPattern;
^
之后有很多与PCRE相关的错误。
我发现 PCRE 库与 Perl 相关,但 Perl 已正确安装在我的 PC 上。
你有解决办法吗?
【问题讨论】:
-
您可以添加您的
config.status文件吗? PCRE 与您安装在系统上的 Perl 无关。您是否也在其他地方安装了 PCRE,即系统路径中是否有pcre.h? -
感谢您的回复。我在
.\3rdparty\pcre中找到了一个 pcre.h 文件,并且我还构建了 PCRE 库。所以我有 2 个 pcre.h 文件。 -
我上传了 config.summary 文件:pastebin.com/afhA6Z5N。我找不到 config.status 文件。
-
我发现了问题。 gnuwin32 文件夹中有一个旧的 (2006)
pcre.h文件。我删除了它并用我从 PCRE 源编译的那个替换它并且它可以工作。 -
仅供参考,这与 Perl 无关。 PCRE 库是一个完全独立的项目,它试图模拟 Perl 的正则表达式功能以包含在其他语言/工具中。因此,您的 Perl 安装是否正常工作这一事实并不重要。
标签: c++ qt qt5 pcre qregularexpression