История изменений
Исправление ZenitharChampion, (текущая версия) :
А можешь посмотреть ещё одну ошибку? Тоже [-fpermissive]
Я успешно скомпилировал Qt 5.9 и начал компилировать Qt 5.10. Но вдруг перестало собираться, ругаясь на SSL. Раньше (до версии 5.10) ошибки на этом месте не было...
Ошибка вот такая:
g++ -c -pipe -O3 -std=c++11 -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DENABLE_PIXMAN_DRAWHELPERS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I../../include -I../../include/QtGui -I../../include/QtGui/5.10 -I../../include/QtGui/5.10/QtGui -isystem /usr/include/libdrm -I../../include/QtCore/5.10 -I../../include/QtCore/5.10/QtCore -I../../include/QtCore -I.moc -isystem /usr/include/libpng12 -I../3rdparty/harfbuzz-ng/include -isystem /usr/include/pgsql -isystem /usr/include/pgsql/server -isystem /usr/include/mysql -I../../mkspecs/linux-g++ -o .obj/qplatformgraphicsbuffer.o kernel/qplatformgraphicsbuffer.cpp
In file included from ssl/qsslsocket_openssl_symbols.cpp:58:0:
ssl/qsslsocket_openssl_symbols.cpp: In function 'char* q_SSL_CIPHER_description(const SSL_CIPHER*, char*, int)':
ssl/qsslsocket_openssl_symbols_p.h:193:58: error: invalid conversion from 'const SSL_CIPHER* {aka const ssl_cipher_st*}' to 'SSL_CIPHER* {aka ssl_cipher_st*}' [-fpermissive]
ret q_##func(arg1, arg2, arg3) { funcret func(a, b, c); }
^
ssl/qsslsocket_openssl_symbols.cpp:384:1: note: in expansion of macro 'DEFINEFUNC3'
DEFINEFUNC3(char *, SSL_CIPHER_description, const SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
^
In file included from ../../include/QtNetwork/5.10/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:60:0,
from ../../include/QtNetwork/5.10/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:62,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslsocket_openssl_symbols.cpp:58:
/usr/include/openssl/ssl.h:1549:7: error: initializing argument 1 of 'char* SSL_CIPHER_description(SSL_CIPHER*, char*, int)' [-fpermissive]
char *SSL_CIPHER_description(SSL_CIPHER *,char *buf,int size);
^
Вот патч, добавляющий код, после которого начались проблемы. Патч озаглавлен «OpenSSL 1.1 backend», но, как я понял, поддержку более старых версий не удаляли. Наверняка там есть условие «if >= 1.1» и «else». И наверное, старый код меняли (раз уж начала появляться ошибка). Ориентируясь при этом на OpenSSL 1.0 и новее, а у меня 0.9.8. Исходник 1.0, 0.9.8, заголовочные файлы 1.0, 0.9.8
Исправление ZenitharChampion, :
А можешь посмотреть ещё одну ошибку? Тоже [-fpermissive]
Я успешно скомпилировал Qt 5.9 и начал компилировать Qt 5.10. Но вдруг перестало собираться, ругаясь на SSL. Раньше (до версии 5.10) ошибки на этом месте не было...
Ошибка вот такая:
g++ -c -pipe -O3 -std=c++11 -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DENABLE_PIXMAN_DRAWHELPERS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I../../include -I../../include/QtGui -I../../include/QtGui/5.10 -I../../include/QtGui/5.10/QtGui -isystem /usr/include/libdrm -I../../include/QtCore/5.10 -I../../include/QtCore/5.10/QtCore -I../../include/QtCore -I.moc -isystem /usr/include/libpng12 -I../3rdparty/harfbuzz-ng/include -isystem /usr/include/pgsql -isystem /usr/include/pgsql/server -isystem /usr/include/mysql -I../../mkspecs/linux-g++ -o .obj/qplatformgraphicsbuffer.o kernel/qplatformgraphicsbuffer.cpp
In file included from ssl/qsslsocket_openssl_symbols.cpp:58:0:
ssl/qsslsocket_openssl_symbols.cpp: In function 'char* q_SSL_CIPHER_description(const SSL_CIPHER*, char*, int)':
ssl/qsslsocket_openssl_symbols_p.h:193:58: error: invalid conversion from 'const SSL_CIPHER* {aka const ssl_cipher_st*}' to 'SSL_CIPHER* {aka ssl_cipher_st*}' [-fpermissive]
ret q_##func(arg1, arg2, arg3) { funcret func(a, b, c); }
^
ssl/qsslsocket_openssl_symbols.cpp:384:1: note: in expansion of macro 'DEFINEFUNC3'
DEFINEFUNC3(char *, SSL_CIPHER_description, const SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
^
In file included from ../../include/QtNetwork/5.10/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:60:0,
from ../../include/QtNetwork/5.10/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:62,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslsocket_openssl_symbols.cpp:58:
/usr/include/openssl/ssl.h:1549:7: error: initializing argument 1 of 'char* SSL_CIPHER_description(SSL_CIPHER*, char*, int)' [-fpermissive]
char *SSL_CIPHER_description(SSL_CIPHER *,char *buf,int size);
^
Вот патч, добавляющий код, после которого начались проблемы. Патч озаглавлен «OpenSSL 1.1 backend», но, как я понял, поддержку более старых версий не удаляли. Наверняка там есть условие «if >= 1.1» и «else». И наверное, старый код меняли (если начала появляться ошибка). Ориентируясь при этом на OpenSSL 1.0 и новее, а у меня 0.9.8. Исходник 1.0, 0.9.8, заголовочные файлы 1.0, 0.9.8
Исходная версия ZenitharChampion, :
А можешь посмотреть ещё одну ошибку? Тоже [-fpermissive]
Я успешно скомпилировал Qt 5.9 и начал компилировать Qt 5.10. Но вдруг перестало собираться, ругаясь на SSL. Раньше (до версии 5.10) ошибки на этом месте не было...
Ошибка вот такая:
g++ -c -pipe -O3 -std=c++11 -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DENABLE_PIXMAN_DRAWHELPERS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I../../include -I../../include/QtGui -I../../include/QtGui/5.10 -I../../include/QtGui/5.10/QtGui -isystem /usr/include/libdrm -I../../include/QtCore/5.10 -I../../include/QtCore/5.10/QtCore -I../../include/QtCore -I.moc -isystem /usr/include/libpng12 -I../3rdparty/harfbuzz-ng/include -isystem /usr/include/pgsql -isystem /usr/include/pgsql/server -isystem /usr/include/mysql -I../../mkspecs/linux-g++ -o .obj/qplatformgraphicsbuffer.o kernel/qplatformgraphicsbuffer.cpp
In file included from ssl/qsslsocket_openssl_symbols.cpp:58:0:
ssl/qsslsocket_openssl_symbols.cpp: In function 'char* q_SSL_CIPHER_description(const SSL_CIPHER*, char*, int)':
ssl/qsslsocket_openssl_symbols_p.h:193:58: error: invalid conversion from 'const SSL_CIPHER* {aka const ssl_cipher_st*}' to 'SSL_CIPHER* {aka ssl_cipher_st*}' [-fpermissive]
ret q_##func(arg1, arg2, arg3) { funcret func(a, b, c); }
^
ssl/qsslsocket_openssl_symbols.cpp:384:1: note: in expansion of macro 'DEFINEFUNC3'
DEFINEFUNC3(char *, SSL_CIPHER_description, const SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
^
In file included from ../../include/QtNetwork/5.10/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:60:0,
from ../../include/QtNetwork/5.10/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:62,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslsocket_openssl_symbols.cpp:58:
/usr/include/openssl/ssl.h:1549:7: error: initializing argument 1 of 'char* SSL_CIPHER_description(SSL_CIPHER*, char*, int)' [-fpermissive]
char *SSL_CIPHER_description(SSL_CIPHER *,char *buf,int size);
^
Вот патч, добавляющий код, после которого начались проблемы. Патч озаглавлен «OpenSSL 1.1 backend», но, как я понял, поддержку более старых версий не удаляли. Наверняка там есть условие «if >= 1.1» и «else». И наверное, старый код меняли. Ориентируясь при этом на OpenSSL 1.0 и новее, а у меня 0.9.8. Исходник 1.0, 0.9.8, заголовочные файлы 1.0, 0.9.8