У меня есть 2 библиотеки c stati, которые скомпилированы по-разному. На данный момент я не понимаю разницы.
Я просто хочу понять, что для одного и того же символа в одной библиотеке адрес символа равен 0. А в другой отличается от нуля. Что это значит?
$ nm works/libdriver.a | grep mbedtls_cipher_setup
0000000000000487 T tls_cipher_setup
$ nm not_works/libdriver.a | grep mbedtls_cipher_setup
0000000000000000 T tls_cipher_setup
Какая будет разница, когда компоновщик будет использовать эти библиотеки для компоновки?
В моем случае, если я использую библиотеку works / libdriver.a, связь проходит успешно. Но когда я использую библиотеку not_works / libdriver.a, та же самая связь генерирует ошибки нескольких определений, и символ tls_cipher_setup является одним из многих, которые генерируют эту ошибку.