我必须链接两个库,比如A和B。有些文件在两个库中都是通用的。因此,我在库A的名称空间中声明了函数,比如abc。因此,在A和B中,函数func如下所示:
[ in A]
namespace abc {
extern "C" void func();
}
[in B]
extern "C" void func();
在构建项目时,编译器抛出链接错误,指出函数func有多个定义。是不是A中的函数func在名称空间内,或者是外部"C“函数有问题。如果有,那么我如何区分它们呢?
发布于 2012-03-13 22:30:50
当您使用Extern "C“时,您关闭了名称损坏,因此您丢失了名称空间信息,因为C没有这样的概念。这会导致重复的定义。
https://stackoverflow.com/questions/9685994
复制相似问题