我有2个静态库,它们的编译方式不同。在这一点上,我不明白其中的区别。
我只想了解,对于一个库中的同一符号,该符号的地址为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是产生此错误的众多符号之一。