我有一个Qt5项目,我想排除额外的依赖项,如ICU,openssl等,因为这些不需要。
我正在使用MSYS2环境来构建应用程序,因此需要在相同的环境中构建Qt。
构建的最终配置(唯一会导致编译成功的配置)如下所示:
./configure -prefix /usr -no-opengl -no-icu -no-dbus -no-fontconfig \
-no-harfbuzz -no-freetype -no-compile-examples -nomake tests \
-skip qtwebview -skip qtactiveqt -skip qtandroidextras \
-skip qtcanvas3d -skip qtconnectivity -skip qtdeclarative \
-skip qtdoc -skip qtenginio -skip qtlocation -skip qtmacextras \
-skip qtmultimedia -skip qtscript -skip qtsensors -skip qtserialbus \
-skip qtserialport -skip qtsvg -skip qttranslations -skip qtwayland \
-skip qtwebchannel -skip qtwebengine -skip qtwebsockets \
-skip qtwebview -skip qtwinextras -skip qtx11extras \
-skip qtxmlpatterns -skip qttools -platform win32-g++
我使用-prefix /usr
将构建的库和二进制文件安装到我的MSYS2中,但在我尝试在项目位置运行qmake
后,我收到错误:
Unknown QT modules: widgets gui core
我确认所有需要的DLL都在正确的位置,而且.h都可用,但仍然无法理解为什么qmake毕竟不了解这些模块?
在线搜索类似的错误会产生很多无用的输出..
UPD :输出config.summary
$ cat config.summary
Configure summary
Build type: win32-g++ (x86_64, CPU features: mmx sse sse2)
Build options:
Configuration .......... accessibility audio-backend avx avx2 build_all c++11 c++14 c++1z clock-gettime clock-monotonic concurrent debug debug_and_release full-config getaddrinfo large-config medium-config minimal-config no-freetype no-harfbuzz openssl pcre png precompile_header qpa qpa reduce_exports reduce_relocations release shared small-config sse2 sse3 sse4_1 sse4_2 ssse3 system-zlib
Build parts ............ libs tools examples
Mode ................... debug and release; default link: debug
Using sanitizer(s)...... none
Using C++ standard ..... c++1z
Using gold linker....... no
Using new DTAGS ........ no
Using PCH .............. yes
Using LTCG ............. no
Target compiler supports:
SSE2/SSE3/SSSE3 ...... yes/yes/yes
SSE4.1/SSE4.2 ........ yes/yes
AVX/AVX2 ............. yes/yes
Qt modules and options:
Qt D-Bus ............... no
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... no
Support enabled for:
Accessibility .......... yes
ALSA ................... no
CUPS ................... no
DirectWrite ............ no
Evdev .................. no
FontConfig ............. no
FreeType ............... no
Glib ................... no
GStreamer .............. no
GTK theme .............. no
HarfBuzz ............... no
Iconv .................. no
ICU .................... no
Image formats:
GIF .................. yes (plugin, using bundled copy)
JPEG ................. yes (plugin, using bundled copy)
PNG .................. yes (in QtGui, using bundled copy)
libinput................ no
Logging backends:
journald ............... no
syslog ............... no
mtdev .................. no
Networking:
getaddrinfo .......... yes
getifaddrs ........... no
IPv6 ifname .......... no
libproxy.............. no
OpenSSL .............. yes (loading libraries at run-time)
NIS .................... no
OpenGL / OpenVG:
EGL .................. no
OpenGL ............... no
OpenVG ............... no
PCRE ................... yes (bundled copy)
pkg-config ............. yes
PulseAudio ............. no
QPA backends:
DirectFB ............. no
EGLFS ................ no
EGLFS i.MX6 ........ no
EGLFS i.MX6 Wayland. no
EGLFS EGLDevice .... no
EGLFS GBM .......... no
EGLFS Mali ......... no
EGLFS Raspberry Pi . no
EGLFS X11 .......... no
LinuxFB .............. no
Mir client............ no
XCB .................. no
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ no
OCI .................. no
ODBC ................. yes (plugin)
PostgreSQL ........... no
SQLite 2 ............. no
SQLite ............... yes (plugin, using bundled copy)
TDS .................. no
tslib .................. no
udev ................... no
xkbcommon-x11........... no
xkbcommon-evdev......... no
zlib ................... yes (system library)