Building Qt 5.8 from source - configure: Unknown command line option '-c++11'

左心房为你撑大大i 提交于 2019-12-11 06:19:03

问题


I followed the instructions from MinGW-64-bit, using Option A: build Qt in MSYS2-shell & MinGW-w64 Win64 Shell.

gcc -v says:

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)

I downloaded the source code

git clone https://code.qt.io/qt/qt5.git
cd qt5
perl init-repository
git checkout 5.8

I know there are other options:

  • git clone https://github.com/qt/qt5.git
  • wget http://download.qt.io/official_releases/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.gz

I've observed the same problem with the second option (archive).

After installing all prerequisites I build OpenSSL and ICU - installed in

  • /usr/local/openssl
  • /usr/local/icu

But from there on the instructions are not so clear. It's stated to use a windows command shell to set some environment variables. But later I'm using the MSYS2 64 Bit shell, so these have no effect. Here is what I did:

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

The configure script runs some time, but then it stops with the following error:

...
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'.

Maybe I forgot to set some flag somewhere, but for the moment I'm stuck right here. Does anybody know how to continue?


回答1:


I removed flag -c++11, according to the comment from Andrei R. and this seams to solve the problem.

This is the Qt Open Source Edition.
You have already accepted the terms of the Open Source license.
Running configuration tests...
Checking for gold linker... no
Checking for valid makespec... yes
Checking for target architecture... x86_64
Checking for SSE2 instructions... yes
Checking for SSE3 instructions... yes
Checking for SSSE3 instructions... yes
Checking for SSE4.1 instructions... yes
Checking for SSE4.2 instructions... yes
Checking for AVX instructions... yes
Checking for bugfree AVX support in compiler... yes
Checking for AVX2 instructions... yes
Checking for AVX512 F instructions... no
Checking for C++14 support... yes
Checking for C++1z support... yes
Checking for compiler defaulting to C++11 or higher... yes



回答2:


The correct compiler flag should be -std=c++11, not -c++11.

Anyway, GCC 6.x uses C++11 implicitly, so it is not necessary. This is also apparent from the log in the author's answer.



来源:https://stackoverflow.com/questions/41887821/building-qt-5-8-from-source-configure-unknown-command-line-option-c11

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!