我将程序链接到外部静态库。
这是我看到的众多错误之一:
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_”前缀,这会导致链接器错误。
我该如何解决这个问题?
答案 0 :(得分:0)
我正在使用的外部库在符号之后添加了“rumpns_”,这些符号还不是其命名空间的一部分。
修改makefile以删除此行为对我有用