添加新库

时间:2015-07-25 12:20:13

标签: c++ ns-3

在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;
}

1 个答案:

答案 0 :(得分:1)

您的函数findOutSector是否直接写在标题中?如果是,请将定义放在.c文件(+ compile& link)中,并将其放在标题中的函数声明中。该函数应该只在所有编译对象中存在一次,并且声明用作对它的引用。