我正在将程序链接到外部静态库。
这是我看到的众多错误之一:
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以删除此行为对我有效
关于c - 与使用 namespace 的外部库链接时,如何解决C中的 undefined reference ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25153411/