Has*_*yed 3 c++ portability abi
我正在创建一个带有C-ABI接口的C++库.
这就是GCC如何处理关于重整的外部"C"限定符:
namespace x {
extern "C" int monkey(int x) {
return 1;
}
int chimpanzee(int x) {
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
相关nm产出:
00000000004005cd T _ZN1x10chimpanzeeEi
00000000004005bf T monkey
Run Code Online (Sandbox Code Playgroud)
问题: 我想在命名空间中保留C-ABI中涉及的函数,以便最大程度地重用.重要说明:编译库后,我将为链接器提供映射文件(GCC)或模块定义文件(MSVC).
你正在做的事情很好,并会给你你想要的效果.来自C++编程语言,第3版,第208页:"可以在命名空间中声明具有C链接的名称.命名空间将影响在C++程序中访问名称的方式,但不会影响链接器看到它的方式.printf()来自std一个典型的例子......即使被召唤std::printf(),它仍然是旧的C.printf()"
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |