我正在编译一组 .C 文件,并尝试使用 xlC 编译器版本 9.0 在 AIX 6.0 上创建目标文件。 它产生以下错误:
1540-1172 (S) More than one function "operator new" has non-C++ linkage.
1540-0424 (I) "operator new" is declared on line 92 of "/usr/vacpp/include/new".
1540-0121 (S) A template cannot have "C" linkage.
1540-0140 (S) The text "<" is unexpected. "List" may be undeclared, ambiguous, or may require "typename" qualification.
任何形式的指导或帮助将不胜感激。
$ xlC -qversion
C for AIX version 6.0.0.0
编译器 xlC 只是一个 C++ 编译器。 我已经验证 #include 周围没有 extern 'C' 。 如果有人解决过这个问题,请告诉我解决方案。
当您尝试重载 extern "C" 内的函数时,会出现该消息
extern "C"{
struct A{};
struct B{};
void test(A arg);
void test(B arg);
}
“q.cpp”,第 5.9 行:1540-1172 (S) 多个函数“test”具有非 C++ 链接。
“q.cpp”,第 4.9 行:1540-0424 (I) “test”在“q.cpp”的第 4 行声明。