Почему я получаю ошибки «неопределенной ссылки» при связывании с OpenSSL?

7

Мой процесс компиляции вызывает ошибки, такие как

..undefined reference to 'BN_cmp'

хотя я включаю <openssl/bn.h>

и запустите gcc -lssl -lcrypto test.c -o test

может кто-нибудь помочь? (openssl libssl1.0.0, libssl-dev установлены)

    
задан einalex 28.09.2012 в 20:21
источник

1 ответ

13

Решение так же просто, как добавление флагов -l на конец :

gcc test.c -o test -lssl -lcrypto

Порядок имеет значение, потому что ld , поскольку Ubuntu 11.04 вызывается с помощью переключателя -as-needed по умолчанию, так что файлы / библиотеки, которые зависят от других библиотек, должны поступать перед этими другими библиотеками, то есть test.c требует libcrypto , поэтому он должен прибыть до -lcrypto .

Для получения дополнительной информации см. Переход на цепочку в Natty Narwhal .

    
ответ дан ish 28.09.2012 в 21:34
источник

Ознакомьтесь с другими вопросами по меткам