Sublimetext 3 c++ 编译错误"未定义对类的引用::constructor()

Sublimetext 3 c++ compilation error "undefined reference to class::constructor()

本文关键字:引用 constructor c++ 编译 错误 未定义 Sublimetext      更新时间:2023-10-16

我有一个问题与SublimeText 3和未定义的引用类构造函数。我认为问题在于链接。

有main.cpp, Student.cpp和Student.h。

代码现在非常简单

main.cpp:

    #include "Student.h"
    int main(int argc, char const *argv[])
    {
      Student student1;
      return 0;
    }

Student.h:

    #ifndef _S
    #define _S 
    #include <iostream>
    using namespace std;

    class Student
    {
      public:
          Student();
          ~Student();
    };
    #endif
最终Student.cpp

    #include "Student.h"
     Student::Student() {}
     Student::~Student(){} 

有什么建议我必须安装或更改什么包吗?

我很感激你的帮助

玛丽亚

编辑:

谢谢你的回答!我通过制作Makefile来解决这个问题。我必须安装GnuWin,我的"make"可以工作,然后在Sublime上我选择了BuildSystem -> make,这就是我的make文件的样子:

    NEW=5.1
    NEW2 = Student
    KOMP=g++
    FLAGS= -std=c++11 -Wall -g
    $(NEW):$(NEW).o $(NEW2).o 
        $(KOMP) $(FLAGS) $^ -o $@
    $(NEW).o:$(NEW).cpp 
        $(KOMP) -c $(FLAGS) $^ -o $@
    $(NEW2).o:$(NEW2).cpp $(NEW2).h
        $(KOMP) -c $(FLAGS) $^ 
    clean:
        rm -f *.o *.gch $(NEW)
    run: $(NEW)
        ./$(NEW)
    valgrind: $(NEW)
        valgrind -v ./$(NEW)
    gdb: $(NEW)
        gdb ./$(NEW)

之后,我必须安装PackageResourceViewer来添加变体"run"和其他(记得添加,在"variables"中每个{}之后)

希望我的帖子也能帮助到一些人。

这个错误是由链接器引起的,因为它看不到构造函数的定义所在的位置。在《Sublime Text 3》中,有像makefile这样的构建系统"逻辑"。(工具->构建系统)例如,Windows上的测试cpp构建系统是这样的:

{
    "shell_cmd": ""%VS120COMNTOOLS%\..\..\VC\vcvarsall.bat" amd64 && cl /nologo "$file"",
    "file_regex": "^(.*?)\(([0-9+])(?:,([0-9+]))?\)\s+:\s+(.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++"
}

尝试创建一个适合你需要的"构建系统",然后构建你的源代码。