编译 C++ 代码时未定义的引用构造函数
Undefined reference constructor while compiling C++ code
当我尝试使用 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;
}
您需要编译所有 CPP 文件,因为每个文件都是单独的compilation unit
g++ main.cpp Time.cpp -o main
有关该内容的更多信息,请阅读
- How is compilation unit defined in c++?
- What is a "translation unit" in C++
当我尝试使用 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;
}
您需要编译所有 CPP 文件,因为每个文件都是单独的compilation unit
g++ main.cpp Time.cpp -o main
有关该内容的更多信息,请阅读
- How is compilation unit defined in c++?
- What is a "translation unit" in C++