Могу ли я изменить манглинг для g ++, чтобы он соответствовал xlC? - PullRequest
1 голос
/ 12 июня 2019

Я пытаюсь скомпилировать код в aix, используя g++, так как поддержка x ++ C ++ 11 очень ограничена.

У меня проблемы с связыванием моего кода с общими библиотеками aix из-за искажения имен.

xlC поддерживает замену искажения имени (-qnamemangling = v13), но IBM не предоставила исходники, поэтому мне нужно перекомпилировать, используя g ++ (или xlclang ++) с искажением имени xlC.

xlC версия V16.1

Можно ли заменить искажение имени g ++ (или xlclang ++) на xlC?

Есть ли другая альтернатива?

1 Ответ

2 голосов
/ 12 июня 2019

xlC и g ++ не совместимы в AIX. Они используют разные объектные модели и стандартные библиотеки.

В XLC ++ 16.1 имеется компилятор xlclang ++ с полной поддержкой C ++ 11, однако он также не совместим с xlC, поскольку совместимость нарушена с C ++ 11. xlclang ++ использует стандартную библиотеку на основе libc ++ (LLVM), в то время как xlC использует собственную устаревшую библиотеку libC.a. Совместимость через C сохраняется, поэтому ваши параметры перекомпилируются или переделывают ваши интерфейсы в некомпилированные интерфейсы C ++ для прохождения через уровень C.

...