G++ 我能把变形换成g++;要匹配xlC?

G++ 我能把变形换成g++;要匹配xlC?,g++,aix,name-mangling,xlc,G++,Aix,Name Mangling,Xlc,我试图使用g++在aix上编译代码,因为c++11对xlC的支持非常有限 我很难将代码链接到aix共享库,因为名称不同 xlC支持名称损坏替换(-qnamemangling=v13),但IBM没有提供源代码,因此我需要使用带有xlC名称损坏的g++(或xlclang++)重新编译 xlC版本是V16.1 是否可以替换g++(或xlclang++)的名称mangling以匹配xlC 还有其他选择吗 xlC和g++在AIX上不兼容。它们使用不同的对象模型和标准库 XLC++16.1中有一个完全支持C

我试图使用
g++
在aix上编译代码,因为c++11对xlC的支持非常有限

我很难将代码链接到aix共享库,因为名称不同

xlC支持名称损坏替换(-qnamemangling=v13),但IBM没有提供源代码,因此我需要使用带有xlC名称损坏的g++(或xlclang++)重新编译

xlC版本是V16.1

是否可以替换g++(或xlclang++)的名称mangling以匹配xlC


还有其他选择吗

xlC和g++在AIX上不兼容。它们使用不同的对象模型和标准库


XLC++16.1中有一个完全支持C++11的xlclang++编译器,但是,它也不能与XLC互操作,因为与C++11的兼容性被破坏。xlclang++使用基于libc++(LLVM)的标准库,而xlC使用自己的遗留libc.a库。通过C兼容,所以您的选项被重新编译或重新处理接口到非重新编译的C++接口,以通过C++层。不同编译器的对象模块和库不太可能兼容。我可以使用
extern“C”
函数链接,因此我猜它没有什么不同。我想替换“代码> G++<代码>之类的方法。你可以使用ExtLead“C”,但是,要小心,因为一旦你从XLC跨到XLCLAN+++编译代码,你就应该假定C++的类型将被不同地布置。考虑:外部“C”void foo(std::vector&v);如果向量是在XLC侧创建的,并且在XLCLAN+++端使用,则没有期望这会起作用(即使是针对用户定义的C++类型)编译器也会更改该规则以免除您的影响。使用extern“C”是一种覆盖,您知道自己在做什么。