我有一个问题与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++"
}
尝试创建一个适合你需要的"构建系统",然后构建你的源代码。