use*_*295 5 multiple-definition-error nm
我有 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
Run Code Online (Sandbox Code Playgroud)
当链接器使用这些库进行链接时会有什么区别?
就我而言,如果我使用works/libdriver.a库,链接就会成功通过。但是,当我使用 not_works/libdriver.a 库时,相同的链接会生成多重定义错误,而符号 tls_cipher_setup 是生成此错误的众多错误之一。
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |