我正在调试一个Linux程序,它链接了两个共享库(liba.so和libb.so)。每个库在同一个文件main.cpp中都有相同的符号Journal。gdb只从其中一个库中查找并打印该符号。如何从另一个库中查找并打印该符号?如何打印特定共享库中的所有符号?
(gdb)info var Journal
File ../main.cpp:
SJournalEntry Journal[64];
(gdb) info address Journal
Symbol "Journal" is static storage at address 0x7ffff7febee0.
(gd
TL;博士
我正在尝试构建一个使用这个依赖项的go项目:,它反过来对外链接lldap和llber库,后者又使用lgnutls,它使用lnettle,这就是我陷入困境的地方。
go build生成一长串未定义的引用,生成失败。这是一个样本:
/usr/lib/x86_64-linux-gnu/libgnutls.a(sha-x86-ssse3.o): In function `_ctx_init':
(.text+0x468): undefined reference to `nettle_sha256_digest'
/usr/lib/x86_64-linux-gnu/libg
我已经成功地在Linux x86_x64上构建了几个32位的静态和共享库,现在我试图将它们链接到一个可执行文件,并得到以下错误:
/usr/bin/ld: foo.so: __moddi3: invalid version 21 (max 0)
foo.so: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
其中foo.so是我构建的共享库之一。
__moddi3函数是的一部分。它的签署是:
— Runtime Function: long __moddi3 (long a, long b)