VSCode 使用外部类编译C++ - 未定义对 'MyClass::MyClass()' 的引用



编译main文件时出错&使用VS代码的外部CCD_ 2。

文件结构:

project/
--main.cpp
--MyClass.cpp
--MyClass.h

MyClass.h

#ifndef MY_CLASS_H
#define MY_CLASS_H
class MyClass
{
public:
MyClass();
};
#endif

MyClass.cpp

#include "MyClass.h"
#include <iostream>
#include <string>
MyClass::MyClass()
{
std::cout << "MyCLass is created" << std::endl;
}

main.cpp

#include <iostream>
#include <string>
#include "MyClass.h"
int main()
{
MyClass myClass;
return 0;
}

编译错误:

main.cpp:9:对`MyClass::MyClass()'的未定义引用

将main.cpp的includes更改为:

#include <iostream>
#include <string>
#include "MyClass.cpp"

通过在main.cpp中包含MyClass.cpp并像这样编译:

g++ -o main main.cpp

由于MyClass.cpp中包含了MyClass.h,所以最终会包含它。通过包含MyClass.cp,您可以成功编译。

如果你想保持你的代码目前的状态,你可以改为:

g++ -o main main.cpp MyClass.cpp

这将包括编译中的MyClass.cpp。

最新更新