小编Dha*_*dra的帖子

C++:命名空间内的Extern C函数

我必须链接两个库,比如A和B.一些文件在两个库中都很常见.所以,我在命名空间中声明库A中的函数,比如说abc.因此,在A和B中,函数func如下所示:

[ in A]

    namespace abc {
    extern "C" void func();
    }


[in B]

    extern "C" void func();
Run Code Online (Sandbox Code Playgroud)

在构建项目时,编译器抛出链接错误,说明函数func的多个定义.不是命名空间内的A中的函数func,还是extern"C"函数存在一些问题.如果有,那我怎么能区分它们呢?

c++ namespaces linker-errors extern

16
推荐指数
1
解决办法
7277
查看次数

C++:在'#include <files>'之前是否允许命名空间定义.

我在多个文件中使用单个命名空间,我在开头插入了"namespace abc {",在每个文件末尾插入了"}"(主要除外).因此'#include'位于每个文件的命名空间下.当我编译时,它不起作用(不识别系统函数等).

但是如果我在'#include'行之后定义名称空间,一切正常.这里有什么问题?

c++ namespaces

3
推荐指数
1
解决办法
1029
查看次数

标签 统计

c++ ×2

namespaces ×2

extern ×1

linker-errors ×1