2017-01-27 2 views
1

Ich folgte den Anweisungen von MinGW-64-bit, mit Option A: Build Qt in MSYS2-Shell & MinGW-w64 Win64 Shell.Qt 5.8 von Quelle erstellen - configure: Unbekannte Befehlszeilenoption '-C++ 11'

gcc -v sagt:

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) 

ich den Quellcode heruntergeladen

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

Ich weiß, es gibt auch andere Optionen:

Ich habe das gleiche Problem mit der zweiten Option (Archiv) beobachtet.

Nachdem alle Voraussetzungen der Installation ich bauen OpenSSL und ICU - installiert in

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

Aber von dort auf die Anweisungen nicht so klar. Es wird angegeben, eine Windows-Befehlsshell zu verwenden, um einige Umgebungsvariablen festzulegen. Aber später benutze ich die MSYS2 64 Bit Shell, also haben diese keine Wirkung. Hier ist, was ich getan habe:

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 

Der configure-Skript einige Zeit läuft, aber dann hört es mit dem folgenden Fehler:

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

Vielleicht vergaß ich irgendwo etwas Flag gesetzt, aber für den Moment, als ich bin hier festgefahren. Weiß jemand weiter?

+3

Qt 5.8 wird nicht kompiliert ohne C++ 11 Unterstützung im Compiler, was -C++ 11 Flag unbrauchbar macht –

Antwort

0

Ich entfernte Flagge -C++ 11, nach dem Kommentar von Andrei R. und dies scheint das Problem zu lösen.

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 
0

Der korrekte Compiler-Flag sollte -std = C++ 11, nicht -C++ 11 sein.

Wie auch immer, GCC 6.x verwendet C++ 11 implizit, also ist es nicht notwendig. Dies ergibt sich auch aus dem Protokoll des Autors answer.

Verwandte Themen