在ns-3环境中工作,我创建了一个库,其中有一些方法在我的代码中调用。为了编译库,我在wscript文件中添加了库的链接,如果已经定义如下,我将控制它:
#ifndef MY_LIBRARY_H_
#define MY_LIBRARY_H_
.. my methods
#endif
当我构建代码时,会生成以下错误:
duplicate symbol __Z8getValueiib in:
src/model/bs-phy.cc.1.o
src/model/ue-phy.cc.1.o
ld: 3 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我认为这是因为我在多个类中使用了我的方法,并且可能存在多个编译错误。有什么想法解决问题吗? (我不是专家,也许我错过了什么!!!)
感谢您的帮助!!
[编辑]
uint32_t findOutSector()
{
uint32_t sector = 0;
return sector;
}
答案 0 :(得分:1)
您的函数findOutSector
是否直接写在标题中?如果是,请将定义放在.c
文件(+ compile& link)中,并将其放在标题中的函数声明中。该函数应该只在所有编译对象中存在一次,并且声明用作对它的引用。