Я компилирую приложение С++ с помощью GNU g++
. В проекте используются библиотеки OpenSSL.
Фон
На моей машине (64-битное центральное ядро CentOS) я компилирую и связываю свои файлы.
g++ -g -c -L/usr/local/lib/ -L/usr/lib64/
-I/usr/local/include/ -I/usr/local/ssl/include/
-lcrypto mysrc1.cpp mysrc2.cpp mysrc3.cpp
g++ -L/usr/local/lib/ -L/usr/lib64/ -lcrypto
*.o -o ./myapp.out
В моем приложении используется функция MD5
, которая содержится в libcrypto.so
. Как вы можете видеть, я указываю g++
dirs, где искать с помощью опций -L
, -I
и какие библиотеки искать с помощью параметра -l<lib-name>
. Есть некоторые тривиальные пути, такие как /usr/local/lib
, которые можно опустить, конечно, но я указал их, потому что makefile является параметрическим.
Проблема
Моя проблема в том, что я могу успешно скомпилировать свой материал (первая команда), , но ссылка не работает (вторая команда):
/usr/bin/ld: не удается найти -lcrypto
collect2: ld возвращен 1 статус выхода
make: * [cppsims_par] Ошибка 1
Но я проверял папки и все... libcrypto.so
находится внутри /usr/lib64/
. Что происходит?