C ++新手在这里。我一直在尝试构建一个简单的多文件项目,其中包含main.cpp源文件和单个类,它们分为源文件和头文件,类中没有任何内容,但是空构造函数,而main.cpp中没有引用这个班级。基本上我所做的就是创建一个控制台应用程序,然后在C :: B附带的模板的帮助下添加一个类,默认设置的唯一变化是我在类中没有包含析构函数。所以最终结果是这样的:
// main.cpp
#include <iostream>
using namespace std;
int main{
cout << "Hello World!" << endl;
return 0;
}
//---------------------
// someclass.h
#ifndef SOMECLASS_H
#define SOMECLASS_H
class someclass
{
public:
someclass();
protected:
private:
};
#endif // SOMECLASS_H
//---------------------
// someclass.cpp
#include "someclass.h"
someclass::someclass()
{
//ctor
}
编译main.cpp和头文件工作正常,但编译someclass.cpp或构建项目会返回以下错误:
g ++ -Wall -fexceptions -g -I -c 相关源文件的路径 -o obj / Debug / someclass.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o:In function _start':(。text + 0x20):对main'
的未定义引用
另一方面,如果我关闭项目,重新打开它并再次尝试构建它,它工作正常,这似乎发生在项目中引入新类时。我会假设代码丢失了一些东西,但另一台运行C :: B的机器似乎没有分享这个问题。