2017-01-27 14 views
1

Я выполнил инструкции из MinGW-64-bit, используя вариант A: постройте Qt в оболочке MSYS2 & MinGW-w64 Win64 Shell.Building Qt 5.8 from source - configure: Неизвестная опция командной строки '-C++ 11'

НКУ -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 

Я знаю, что есть и другие варианты:

Я наблюдал ту же проблему со вторым вариантом (архив).

После установки всех необходимых компонентов я построю OpenSSL и СИС - установленный в

  • /USR/местные/OpenSSL
  • /USR/местные/СИС

Но оттуда в инструкции не так ясно. Утверждается, что для установки некоторых переменных среды используется командная оболочка Windows. Но позже я использую MSYS2 64-битную оболочку, поэтому они не имеют никакого эффекта. Вот что я сделал:

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 

Настроить скрипт работает некоторое время, но затем он останавливается со следующей ошибкой:

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

Может быть, я забыл установить некоторый флаг где-то, но на данный момент я Прямо здесь. Кто-нибудь знает, как продолжить?

+3

Qt 5.8 не будет компилироваться без поддержки C++ 11 в компиляторе, что делает флаг -C++ 11 бесполезным –

ответ

0

Я удалил флаг -C++ 11, в соответствии с комментарием Андрея Р. и этого шва, чтобы решить проблему.

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

Флаг правильный компилятор должен быть -std = C++ 11, не -C++ 11.

В любом случае, GCC 6.x использует C++ 11 неявно, поэтому это необязательно. Это также видно из журнала в журнале answer.

Смежные вопросы