Я компилирую приложение С++ с помощью 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/. Что происходит?