Sublimetext 3 c++ 编译错误"未定义对类的引用::constructor()
Sublimetext 3 c++ compilation error "undefined reference to class::constructor()
我有一个问题与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++"
}
尝试创建一个适合你需要的"构建系统",然后构建你的源代码。
相关文章:
- 将对象数组的引用传递给函数
- 什么时候在C++中返回常量引用是个好主意
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 何时在引用或唯一指针上使用移动语义
- 如何在c++中使用引用实现类似python的行为
- 编译C++时未定义的引用
- Ctypes wstring通过引用传递
- c++r值引用应用于函数指针
- 理解c++中的引用
- C++取消引用指针.为什么会发生变化
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 强制转换为引用类型
- 引用一个已擦除类型(void*)的指针
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 具有默认值的引用获取函数
- std::thread constructor传递指针和通过引用传递有区别吗
- Sublimetext 3 c++ 编译错误"未定义对类的引用::constructor()
- C++ 类继承,未定义对'Class::Constructor()'的引用