2013-09-24 6 views
2

Je compile un ensemble de fichiers .C et essaye de créer des fichiers objets sous AIX 6.0 à l'aide du compilateur xlC version 9.0. Il génère les erreurs suivantes:Problème de compilation xlC dans l'environnement 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. 

Toute sorte de conseils ou d'aide serait appréciée.

$ xlC -qversion 
C for AIX version 6.0.0.0 

Le compilateur xlC est un compilateur C++ uniquement. J'ai vérifié qu'il n'y a pas d'extern 'C' autour de #include. S'il vous plaît laissez-moi savoir la solution si quelqu'un a travaillé à ce sujet.

+1

C'est à peu près inutile. Vous pourriez envisager d'afficher le code source associé aux messages. – EvilTeach

+0

Il sera difficile de déterminer ce qui ne va pas avec les informations minimales fournies. Il semble que vous ayez: 'extern 'C" {'suivi de' #include 'et'} 'sur trois lignes. Alternativement, il se peut que vous utilisiez un compilateur C au lieu d'un compilateur C++, mais il est plus susceptible de se plaindre de la syntaxe de 'operator new' que de l'autoriser, sauf qu'il y a plusieurs déclarations de' operator new' tout avec 'extern" C "' linkage. –

Répondre

1

Ce message intervient lorsque vous essayez de surcharger les fonctions à l'intérieur extern "C"


extern "C" {
struct A {};
struct B {};
test de vide (A arg);
test de vide (B arg);
}


"q.cpp", ligne 5.9: 1540-1172 (S) Plus d'une fonction "test" a liaison non-C++.
"q.cpp", ligne 4.9: 1540-0424 (I) "test" est déclaré sur la ligne 4 de "q.cpp".

+0

Merci Catherine pour vos conseils. Je vais vérifier si cela s'applique à mon code et à ma mise à jour. –

+0

Catherine, j'ai vérifié à fond et il n'y a pas de telles fonctions surchargées définies dans le bloc externe "C" ... S'il vous plaît laissez-moi savoir si d'autres raisons ... Merci d'avance –

Questions connexes