Я пытаюсь написать класс C++ в отдельном заголовке и файле cpp, используя VS Code в качестве моей IDE с расширениями «run» и «C++».
main.cpp
#include "Fan.h"
int main() {
Fan fan1;
return 0;
}
Вентилятор.ч
#ifndef FAN_H
#define FAN_H
class Fan {
public:
Fan();
};
#endif
Fan.cpp
#include "Fan.h"
#include <iostream>
using namespace std;
Fan::Fan() {
cout << "Fan Class" << endl;
}
Я действительно не могу найти что-то явно неправильное. Мне интересно, является ли это проблемой установки с VS Code.
Если я изменю #include «Fan.h» в main.cpp на «Fan.cpp», это сработает, поэтому я думаю, что код работает, но компоновщик настроен неправильно.
Был бы признателен за любую помощь!
Обновлено: Итак, я попробовал код в другой среде IDE, и это сработало. Это как-то связано с VS Code. Вот ошибка:
[Running] cd "c:\Users\<USER>\Desktop\Fan\" && g++ tempCodeRunnerFile.cpp -o tempCodeRunnerFile && "c:\Users\<USER>\Desktop\Fan\"tempCodeRunnerFile
C:\Users\<USER>\AppData\Local\Temp\cclMFKxO.o:tempCodeRunnerFile.cpp:(.text+0x57): undefined reference to `Fan::Fan()'
collect2.exe: error: ld returned 1 exit status
Это не «что-то связанное с кодом VS». Это как-то связано с тем, что ваш исходный файл не включен правильно в проект VS.





Похоже, IDE только компилирует main.cpp. Вам нужно найти команду, которая компилирует main.cpp, и убедиться, что она также компилирует fan.cpp в fan.obj. Вам также необходимо убедиться, что и main.obj, и fan.obj передаются компоновщику (который создает исполняемую программу, main.exe или что-то еще).
Здесь необходимо выполнить два шага:
Я прошел и обнаружил, что yes VS Code компилирует только мой файл main.cpp и не компилирует Fan.cpp. Я думаю, что мне будет лучше получить лучшую C++ IDE.
Я бы посоветовал создать файл CMakeLists.txt и добавить main.cpp и fan.cpp в раздел add_executable. Затем VS может обрабатывать и запускать файлы через CMake.
Возможно, make-файл ожидает .cop или что-то другое, чем предоставлено.