编译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。