Сценарий:
На Debian 8 я установил библиотеку openssl (как runtime, так и dev), версия 1.0.1t.Они были установлены с использованием apt-get
.Итак, расположение по умолчанию: /usr/include/
и /usr/lib
.
Я скомпилировал файл, который использует библиотеку openssl: (сгенерированный из qmake
)
g++ -c -pipe -O2 -fPIC -std=gnu++11 -Wall -W -DHAVE_OPENSSL -D_REENTRANT -DENABLE_IPV6 -DTIXML_USE_STL -DBOOST_FILESYSTEM_DEPRECATED -DQT_NO_DEBUG -I. -I. -Isrc -Isrc/engine -Isrc/gui -Isrc/gui/qt -Isrc/gui/qt/qttools -Isrc/net -Isrc/engine/local_engine -Isrc/engine/network_engine -Isrc/config -Isrc/core -Isrc/third_party/websocketpp -isystem /usr/include -isystem /usr/include/mysql -isystem /usr/include/mysql++ -I/opt/gsasl/include -I~/Qt/5.9.0_static/mkspecs/linux-g++ -o obj/crypthelper.o src/core/common/crypthelper.cpp
Он отлично работает.Обратите внимание, что заголовки /usr/local/
не включены.
Цель:
Сделайте то же самое с использованием openssl 1.1.1b (для воспроизведения ошибки)
Я устанавливаю openssl 1.1.1b из исходного кода (без удаления 1.0.1t),который устанавливается в /usr/local
.
Сначала, чтобы убедиться, что ничего не изменилось, я запускаю ту же команду (которая не имеет ссылки на /usr/local
), и он жалуется:
In file included from /usr/include/openssl/evp.h:66:0,
from /usr/include/openssl/x509.h:73,
from /usr/include/openssl/ssl.h:156,
from src/core/openssl_wrapper.h:75,
from src/core/common/crypthelper.cpp:34:
/usr/local/include/openssl/opensslconf.h:20:3: error: #error OPENSSL_ALGORITHM_DEFINES no longer supported <---- WHY???
# error OPENSSL_ALGORITHM_DEFINES no longer supported
Почему этопожаловаться на файл, расположенный в /usr/local
?Почему это включает?
Нет ссылки на этот каталог!Я не понимаю
PD: Извините за заголовок, ничего лучше не пришло ко мне.Не стесняйтесь исправить это.