2013-09-24 32 views
2

我正在编译一组.C文件并尝试使用xlC编译器9.0版在AIX 6.0上创建对象文件。它产生以下错误:AIX 6.0环境中的xlC编译问题

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中没有外部'C'。请让我知道解决方案是否有人从事这方面的工作。

+1

这是非常没用的。您可以考虑显示与消息关联的源代码。 – EvilTeach

+0

从所提供的最基本的信息中很难确定什么是错的。它看起来好像你可能有:'extern“C”{“后面跟着#包括'和'}'三行。或者,可能是因为您使用的是C编译器而不是C++编译器,但更可能会抱怨'operator new'的语法,而不是允许它,除了有几个'operator新'全部用'extern'C''连接。 –

回答

1

在尝试过载内外部的 “C”


的extern “C”{
结构A {}函数发生该消息;
struct B {};
void test(A arg);
void test(B arg);
}


“q.cpp”,系5.9:一五四○年至1172年(S)超过一个功能 “测试” 具有非C++链接。
“q.cpp”,第4.9行:1540-0424(I)“test”在“q.cpp”的第4行中声明。

+0

感谢凯瑟琳的指导。我会检查这是否适用于我的代码和更新。 –

+0

凯瑟琳,我已经彻底检查过了,在extern“C”块中没有定义这样的重载函数...请让我知道是否有其他原因...提前致谢 –