我按照MinGW-64-bit的说明,使用选项A:在MSYS2-shell和MinGW-w64 Win64 Shell中构建Qt .
gcc -v说:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-6.3.0/configure
--build=x86_64-w64-mingw32
--disable-isl-version-check
--disable-libstdcxx-debug
--disable-libstdcxx-pch
--disable-multilib
--disable-nls
--disable-rpath
--disable-symvers
--disable-werror
--disable-win32-registry
--enable-bootstrap
--enable-checking=release
--enable-fully-dynamic-string
--enable-graphite
--enable-languages=c,lto,c++,objc,obj-c++,fortran,ada
--enable-libatomic
--enable-libgomp
--enable-libstdcxx-time=yes
--enable-lto
--enable-shared
--enable-static
--enable-threads=posix
--host=x86_64-w64-mingw32
--libexecdir=/mingw64/lib
--prefix=/mingw64
--target=x86_64-w64-mingw32
--with-arch=x86-64
--with-bugurl=https://sourceforge.net/projects/msys2
--with-gmp=/mingw64
--with-gnu-as
--with-gnu-ld
--with-isl=/mingw64
--with-libiconv
--with-local-prefix=/mingw64/local
--with-mpc=/mingw64
--with-mpfr=/mingw64
--with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include
--with-pkgversion='Rev1, Built by MSYS2 project'
--with-system-zlib
--with-tune=generic
Thread model: posix
gcc version 6.3.0 (Rev1, Built by MSYS2 project)
我下载了源代码
git clone https://code.qt.io/qt/qt5.git
cd qt5
perl init-repository
git checkout 5.8
我知道还有其他选择:
-
git clone https://github.com/qt/qt5.git
我在第二个选项(存档)中观察到了同样的问题 .
安装完所有先决条件后,我构建了OpenSSL和ICU - 安装在
-
/ usr / local / openssl
-
/ usr / local / icu
但是从那里开始,说明并不是那么清楚 . 据说使用windows命令shell来设置一些环境变量 . 但后来我使用的是MSYS2 64 Bit shell,所以这些都没有效果 . 这是我做的:
export INCLUDE=/usr/local/icu/include:/usr/local/openssl/include
export LIB=/usr/local/icu/lib:/usr/local/openssl/lib
export QMAKESPEC=
export QTDIR=
windows2unix() { local pathPcs=() split pathTmp IFS=\;; read -ra split <<< "$*"; for pathTmp in "${split[@],}"; do pathPcs+=( "/${pathTmp//+([:\\])//}" ); done; echo "${pathPcs[*]}"; }; systemrootP=$(windows2unix "$SYSTEMROOT"); export PATH="$PWD/qtbase/bin:$PWD/gnuwin32/bin:/c/msys64/mingw64/bin:/c/msys64/usr/bin:/c/msys64/usr/local/icu/lib"
export MAKE_COMMAND=
./configure -debug-and-release -opensource -confirm-license -platform win32-g++ -developer-build -c++11 -icu -opengl desktop -openssl -plugin-sql-odbc -nomake examples -nomake tests
configure脚本运行一段时间,但随后出现以下错误:
...
Creating qmake................................................................................................Done.
Info: creating stash file C:\msys64\home\asp\qt5\.qmake.stash
Info: creating super cache file C:\msys64\home\asp\qt5\.qmake.super
ERROR: Unknown command line option '-c++11'.
也许我忘了在某个地方设置一些旗帜,但是现在我被困在这里 . 有谁知道如何继续?
2 回答
根据Andrei R.的评论,我删除了标志 -c++11 ,这个接缝解决了这个问题 .
正确的编译器标志应该是 -std=c++11 ,而不是 -c++11 .
无论如何,GCC 6.x隐含地使用C 11,所以没有必要 . 从作者的answer中的日志中也可以看出这一点 .