编译C ++代码时未定义的引用构造函数

时间:2017-03-17 02:19:49

标签: c++ g++ linker-errors undefined-reference

当我尝试使用g++ main.cpp编译三个c ++文件时收到以下错误。如果我将它们组合在一个文件中,它就可以了。

main.cpp:(.text+0x10): undefined reference to `Time::Time()'

Time.cpp

#include <iostream>
#include "Time.h"
using namespace std;

Time::Time()
{
    a=5;
}

time.h中

#ifndef TIME_H
#define TIME_H

class Time {

public:
Time();
private:
int a;
};
#endif

的main.cpp

#include <iostream>
#include "Time.h" 
using namespace std;


int main()
{
    Time t;
}

1 个答案:

答案 0 :(得分:3)

您需要编译所有cpp文件,因为每个文件都是一个单独的编译单元

g++ main.cpp Time.cpp -o main