2013-04-27 83 views
0

我通过Xcode的安装GCC,但我正在试图编译的文件时,这个错误:如何解决这个问题? C++编译器设置

sanjay$ g++ main.cpp 
Undefined symbols for architecture x86_64: 
    "Fraction::Fraction(int, int)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
     BinaryMathTest()  in cck2LKpO.o 
     RelationTest()  in cck2LKpO.o 
     BasicTest() in cck2LKpO.o 
    "Fraction::operator/=(Fraction const&)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "Fraction::operator-=(Fraction const&)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "Fraction::operator*=(Fraction const&)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "Fraction::operator--(int)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "Fraction::operator--()", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "Fraction::operator+=(Fraction const&)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "Fraction::operator++(int)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "Fraction::operator++()", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
    "operator/(Fraction const&, Fraction const&)", referenced from: 
     BinaryMathTest()  in cck2LKpO.o 
    "operator==(Fraction const&, Fraction const&)", referenced from: 
     RelationTest()  in cck2LKpO.o 
    "operator>=(Fraction const&, Fraction const&)", referenced from: 
     RelationTest()  in cck2LKpO.o 
    "operator>(Fraction const&, Fraction const&)", referenced from: 
     RelationTest()  in cck2LKpO.o 
    "operator<=(Fraction const&, Fraction const&)", referenced from: 
     RelationTest()  in cck2LKpO.o 
    "operator<<(std::basic_ostream<char, std::char_traits<char> >&, Fraction const&)", referenced from: 
     MathAssignTest()  in cck2LKpO.o 
     BinaryMathTest()  in cck2LKpO.o 
     RelationTest()  in cck2LKpO.o 
     BasicTest() in cck2LKpO.o 
    "operator<(Fraction const&, Fraction const&)", referenced from: 
     RelationTest()  in cck2LKpO.o 
    "operator-(Fraction const&, Fraction const&)", referenced from: 
     BinaryMathTest()  in cck2LKpO.o 
    "operator*(Fraction const&, Fraction const&)", referenced from: 
     BinaryMathTest()  in cck2LKpO.o 
    "operator!=(Fraction const&, Fraction const&)", referenced from: 
     RelationTest()  in cck2LKpO.o 
    "operator+(Fraction const&, Fraction const&)", referenced from: 
     BinaryMathTest()  in cck2LKpO.o 
    "operator>>(std::basic_istream<char, std::char_traits<char> >&, Fraction&)", referenced from: 
     BasicTest() in cck2LKpO.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

如何解决这个问题? 我很确定我的g ++编译器已经正确设置,因为它适用于不同文件夹中的文件。请帮助我解决这个问题..我是这个语言的初学者,我正在尽力理解。

+0

包含Fraction类的模块也必须编译并链接到main.cpp以形成可执行文件。链接器正在搜索列出的符号 - 它们不在main.cpp中。 – suspectus 2013-04-27 10:29:25

回答

0

您需要将包含Fraction类的cpp文件添加到命令行。像这样的东西

g++ main.cpp Fraction.cpp 

希望有帮助。 :)

+0

谢谢!这解决了它 – tmacnadidas 2013-04-27 17:40:13