Я вполне уверен, что libcurl зависит от бинарных файлов SSL / Crypto, а не наоборот.
И я полагаю, что компоновщик gnu не «go back» в списке библиотек разрешает пропущенные символы, а только вперед в списке. Следовательно, этот порядок библиотек включает в себя:
-lcrypto -lssl -lcurl
Должно быть так:
-lcurl -lssl -lcrypto
Другой вариант - избыточно добавить -lcrypto -lssl и до конца строки сборки. То есть:
$ (CXX) $ (CXXFLAGS) program1. cpp /opt/curl-7.62.0/lib/libcurl.a /opt/openssl-1.1.1a/lib/libcrypto.a -o program1 -L / opt / curl-7.62.0 / -L / opt / openssl-1.1.1a / -Write-strings -fpermissive -stati c -libstdc ++ -lcrypto -lssl -lcurl -Wl, -Bstati c -lidn2 -lrt -lz -Wl, -Bdynami c -ldl -lpthread -lcrypto -lssl
Если что-либо из перечисленного работает, вы можно поэкспериментировать с порядком библиотек ссылок.