我将程序链接到外部静态库。
这是我看到的许多错误之一:
undefined reference to `tcp_outratectl_tmofactor'
这在外部库c文件中定义为:
int tcp_outratectl_tmofactor = 1;
如图所示,这在我的程序中使用:
/* This is just a snippet */
extern int tcp_outratectl_timerticks;
if (count) {
tcp_outratectl_timerticks = *count;
}
我从库中提取了目标文件,并试图寻找符号
$ nm -A ./*.o | grep tcp_outratectl_timerticks
./tcp_timer.o:0000000000000018 B rumpns_tcp_outratectl_timerticks
./tcp_usrreq.o: U rumpns_tcp_outratectl_timerticks
如您所见,tcp_outratectl_tmofactor是一个全局BSS符号,但是它的前缀是“ rumpns_”,这会导致链接器错误。
我该如何解决?
我正在使用的外部库在其名称空间尚未包含的符号后面添加了“ rumpns_”。
修改makefile以删除此行为对我有用
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句