【问题标题】:How to fix this? c++ compiler set up如何解决这个问题? c++编译器设置
【发布时间】:2013-04-21 11:35:25
【问题描述】:

我通过 xcode 安装了 gcc,但在尝试编译文件时出现此错误:

 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++ 编译器已正确设置,因为它适用于不同文件夹中的文件。请帮我解决这个问题。我是这门语言的初学者,正在努力理解。

【问题讨论】:

  • 包含 Fraction 类的模块也必须编译并与 main.cpp 链接以形成可执行文件。链接器正在搜索列出的符号 - 它们不在 main.cpp 中。

标签: c++ gcc compiler-construction g++ installation


【解决方案1】:

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

g++ main.cpp Fraction.cpp

希望对您有所帮助。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多