Maison >développement back-end >C++ >Pourquoi est-ce que j'obtiens des erreurs « Symboles non définis » lors de la compilation de code C simple sur macOS ?
Question :
Je reçois une erreur lors de la compilation d'un programme C de base sur macOS Lion.
Code :
#include <iostream> using namespace std; int main(int argc, char *argv[]) { for (int i = 0; i < 10; i++) { cout << "hi"; cout << endl; } return 0; }
Compilation Commande :
cc main.cpp
Erreur :
Undefined symbols for architecture x86_64: "std::cout", referenced from: _main in ccBdbc76.o "std::basic_ostream<char, std::char_traits<char> > & std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> > &, char const*)", referenced from: _main in ccBdbc76.o "std::basic_ostream<char, std::char_traits<char> > & std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> > &)", referenced from: _main in ccBdbc76.o "std::basic_ostream<char, std::char_traits<char> >::operator<< (std::basic_ostream<char, std::char_traits<char> > & (*)(std::basic_ostream<char, std::char_traits<char> > &))", referenced from: _main in ccBdbc76.o "std::ios_base::Init::Init()", referenced from: __static_initialization_and_destruction_0(int, int)in ccBdbc76.o "std::ios_base::Init::~Init()", referenced from: ___tcf_0 in ccBdbc76.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status
Réponse :
Ce type d'erreur est généralement se produit lorsque le code C est compilé à l’aide du front-end C. Bien que le compilateur C comprenne et compile le fichier en tant que C , il échoue lors de la liaison en raison de références manquantes aux bibliothèques C. Pour résoudre ce problème, assurez-vous que vous utilisez plutôt le compilateur C. Remplacez cc par g ou clang lors de la compilation du code :
g++ main.cpp clang++ main.cpp
L'utilisation du bon compilateur C lie le code aux bibliothèques nécessaires et résout les erreurs de symboles non définis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!