Доброго времени суток!
Пытаюсь собрать Qt-5.5.0 из исходников. Заранее прошу не корить за неверно выбранные термины - я в этом деле новичок.
Следую
этому мануалу. Всё устанавливаемое программное обеспечение 32-ух разрядное. Система Windows 10 64x.
Первая проблема возникла при сборке ICU. На этом шаге появилась ошибка "error '_hypot' was not declared in this scope".
Здесь посоветовали использовать флаг "-D__NO_INLINE__" в опциях компилятора. Долго тупил, куда этот флаг прописать, поэтому пробовал везде, где только писалось. Положительный результат проявился после редактирования файла runConfigureICU, который лежит в папке исходников ICU, следующим образом:
...
MacOSX/GCC)
THE_OS="MacOS X (Darwin)"
THE_COMP="the GNU C++"
RELEASE_CFLAGS='-O2'
RELEASE_CXXFLAGS='-O2'
DEBUG_CFLAGS='-g -O0'
DEBUG_CXXFLAGS='-g -O0'
CC=gcc; export CC
CXX=g++; export CXX
;;
MinGW)
THE_OS="MinGW"
THE_COMP="the GNU C++"
RELEASE_CFLAGS='-O3'
RELEASE_CXXFLAGS='-O3'
CXXFLAGS="--std=c++03 -D__NO_INLINE__"
export CXXFLAGS
;;
MSYS/MSVC)
THE_OS="MSYS"
THE_COMP="Microsoft Visual C++"
CC=cl; export CC
CXX=cl; export CXX
RELEASE_CFLAGS='-Gy -MD'
RELEASE_CXXFLAGS='-Gy -MD'
DEBUG_CFLAGS='-Zi -MDd'
DEBUG_CXXFLAGS='-Zi -MDd'
DEBUG_LDFLAGS='-DEBUG'
;;
...
Я не знаю, насколько это верно, но по крайней мере та ошибка больше не вылезала.
Следующий ступор возник непосредственно на этапе сборки Qt при использовании команды mingw32-make. Начали вылазить проблемы, связанные с путями к ICU и Openssl. Пришлось немного поменять файл config.bat (указанный на сайте того мануала) следующим образом:
set INCLUDE=D:\Programs\Qt\qt-5-deps\icu\dist\include
set INCLUDE=%INCLUDE%;D:\Programs\Qt\qt-5-deps\openssl-1.0.1p\dist\include
set LIB=D:\Programs\Qt\qt-5-deps\icu\dist\lib
set LIB=%LIB%;D:\Programs\Qt\qt-5-deps\openssl-1.0.1p\dist\lib
set QMAKESPEC=
set QTDIR=
set PATH=D:\Programs\Qt\qt-5.5.0\qtbase\bin
set PATH=%PATH%;D:\Programs\Qt\qt-5.5.0\gnuwin32\bin
set PATH=%PATH%;D:\Programs\MinGW\bin
set PATH=%PATH%;D:\Programs\Strawberry\c\bin
set PATH=%PATH%;D:\Programs\Strawberry\perl\bin
set PATH=%PATH%;D:\Programs\Python2.7
set PATH=%PATH%;D:\Programs\Ruby22\bin
set PATH=%PATH%;D:\Programs\Qt\qt-5-deps\icu\dist\bin
set PATH=%PATH%;D:\Programs\Qt\qt-5-deps\openssl-1.0.1p\dist\bin
set PATH=%PATH%;D:\Programs\Git\cmd
set PATH=%PATH%;%SystemRoot%\System32
set MAKE_COMMAND=
set DXSDK_DIR=D:\Programs\DXSDK\
configure -prefix D:\Programs\Qt\qt-5.5.0\qtbase -opensource -confirm-license -platform win32-g++ -release -shared -debug-and-release -c++11 -qt-zlib -icu -opengl desktop -openssl -iconv -plugin-sql-odbc -nomake tests -nomake examples -I D:\Programs\Qt\qt-5-deps\icu\dist\include -I D:\Programs\Qt\qt-5-deps\openssl-1.0.1p\dist\include -L D:\Programs\Qt\qt-5-deps\icu\dist\lib -L D:\Programs\Qt\qt-5-deps\openssl-1.0.1p\dist\lib
То есть пришлось явно указать пути к LIB и INCLUDE в команде configure, используя параметры -L и -I.
Далее сборка шла около сорока минут, пока не начали высвечиваться ошибки (так я и не понял, как на вашем форуме вставлять картинки из вложений, поэтому они просто прикреплены к сообщению).
На просторах интернета я не нашёл ничего дельного, поэтому решил обратиться сюда. Как решить данную проблему?
Если понадобится, то вот содержимое переменной PATH (для наглядности сделал списком):
D:\Programs\Python2.7\;
D:\Programs\Python2.7\Scripts;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Skype\Phone\;
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
D:\Programs\MySQL\bin;
D:\Programs\Strawberry\c\bin;
D:\Programs\Strawberry\perl\site\bin;
D:\Programs\Strawberry\perl\bin;
D:\Programs\Git\cmd;
D:\Programs\MinGW\bin;
D:\Programs\DXSDK;
D:\Programs\Ruby22\bin;
Большое спасибо!