为了账号安全,请及时绑定邮箱和手机立即绑定

编译一直通不过...

#include <iostream>
#include "Coordinate.h"
using namespace std;
class Line
{
public:
Line();
~Line();
private:
Coordinate *m_coorA;
Coordinate *m_coorB;
};


Line::Line()
{
m_coorA = new Coordinate(1,2);
m_coorB = new Coordinate(3,4);
}  
Line::~Line()
{
}
int main(void)
{
Line *p;
p = new Line();
delete p;
p=NULL;
}

Coordinate那2个文件是一样的,可以直接通过编译的.但是,在编译Line.cpp的时候报错.

系统1:

Undefined symbols for architecture x86_64:

"Coordinate::Coordinate(int, int)", referenced from:

      Line::Line() in Line-6b7c1a.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

[Finished in 0.4s with exit code 1]


系统2:

/tmp/cc2zKqau.o: In function `Line::Line()':

Line.cpp:(.text+0x2a): undefined reference to `Coordinate::Coordinate(int, int)'

Line.cpp:(.text+0x50): undefined reference to `Coordinate::Coordinate(int, int)'

collect2: error: ld returned 1 exit status




正在回答

1 回答

原来是编译器没配置好.只能编译单文件.忽略.

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70918    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

编译一直通不过...

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信