私はここにいるので、皆さんを助けてくれることを願っています。私はC++プロジェクトでターミナル(Mac OS)でコンパイルしようとしていますが、.cppをインクルードするときにはエラーが発生します。gcc 4.7.4リンクの問題:未定義のアーキテクチャのシンボルx86_64
私は、問題をより明確に見るために、メインで最も簡単な例を作りました。
これらは私のファイルです:
main.cppに
#include "Point.hpp"
int main(){
Point p1;
}
Point.hpp
#ifndef Point_hpp
#define Point_hpp
#include <math.h>
#include <iostream>
#include <stdio.h>
class Point{
private:
double dX;
double dY;
public:
Point();
Point(double dX, double dY);
void setX(double dX);
double getX();
void setY(double dY);
double getY();
double getDistance(Point p);
void move(double dDespX, double dDespY);
void display();
};
#endif
Point.cpp
#include "Point.hpp"
Point::Point(){
dX = 0;
dY = 0;
}
Point::Point(double dX, double dY){
this -> dX = dX;
this -> dY = dY;
}
void Point::setX(double dX){
this -> dX = dX;
}
double Point::getX(){
return dX;
}
void Point::setY(double dY){
this -> dY = dY;
}
double Point::getY(){
return dY;
}
double Point::getDistance(Point p){
double dDist;
dDist = sqrt(pow(p.dX - dX, 2) + pow(p.dY - dY, 2));
return dDist;
}
void Point::move(double dDespX, double dDespY){
dX += dDespX;
dY += dDespY;
}
void Point::display(){
std::cout << "Point = (" << dX << "," << dY <<")" << std::endl;
}
私は(「メインmake」を使用して)コンパイルしようと、私は、端末からこれを取得しています:
$ make main
c++ main.cpp -o main
Undefined symbols for architecture x86_64:
"Point::Point()", referenced from:
_main in ccVzh5gg.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [main] Error 1
MakeファイルにPoint.cppを追加すると、コンパイルの問題が解決するはずです。 –