在 Windows 下,我们有一个 C 接口(interface)(extern "C"{//interface })到我们的 C++ 库,它使用模块定义文件 (.def) 导出未损坏的函数。
我正在尝试在 linux 下重新创建同样的东西,我在这方面相对缺乏经验。我了解到在 NIX 系统下,默认情况下所有函数都是导出的。考虑到这一点,我创建了一个共享对象,并通过 nm 命令运行它。
我很惊讶地发现,与在 Windows 中不同,我的函数名称被破坏了!
请问我怎样才能避免这种情况?
最佳答案
通常的解决方案是声明函数extern "C"
。这不仅会导致名称像在 C 中一样被破坏,还会导致函数使用 C 调用约定。
关于c++ - 避免在 Linux 下的共享对象 C 接口(interface)上进行名称重整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757421/