Професионална програма
Loading...
+ Нов въпрос
Smeshan avatar Smeshan 89 Точки

Visual Studio Code - Windows 10 [c++]

Здравейте,

инсталирах VS Code на операционна система Windows 10, следвах всички официално туториали, за което. Инсталирал съм https://www.msys2.org/ пак спазвайки всичко написано. Направих проверки, ето:

PS C:\Users\*\Desktop\helloworld> g++ --version
g++.exe (Rev5, Built by MSYS2 project) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.

PS C:\Users\*\Desktop\helloworld> c++ --version
c++.exe (Rev5, Built by MSYS2 project) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.

PS C:\Users\*\Desktop\helloworld> gdb --version
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

Тръгнах да пиша нещо простичко да пробвам и това са трите файла, които направих:
helloworld.cpp

#include <iostream>
#include <vector>
#include <string>

#include "Person.h"

using namespace std;

int main()
{
    vector<string> msg{"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string &word : msg)
    {
        cout << word << " ";
    }
    cout << endl;

    
    Person newPerson;

    newPerson.speak();
}

Person.h:

#ifndef PERSON
#define PERSON

#include <iostream>

class Person
{
public:

    void speak();

private:
};

#endif


Person.cpp:

#include "Person.h"

void Person::speak()
    {
        std::cout << "Person is speaking.";
    }

Ако оставя само header-a програмата се билдва и върви. Но като добавя cpp-to към него ми дава тази грешка:

Starting build...
C:/msys64/mingw64/bin/g++.exe -g C:\Users\*\Desktop\helloworld\helloworld.cpp -o C:\Users\*\Desktop\helloworld\helloworld.exe
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\*\AppData\Local\Temp\ccSp7EK1.o:C:/Users/*/Desktop/helloworld/helloworld.cpp:22: undefined reference to `Person::speak()'
collect2.exe: error: ld returned 1 exit status

Build finished with error(s).
The terminal process terminated with exit code: -1.

Линкера не вижда къде е другия файл? Или какво иска да ми каже? Прерових нета, четох, после ръчках, пробвах, преинсталирах, но не мога да го оправя.. местих и слагах и махах includePath от c_cpp_properties.json и нищо.. Но дори и дефаултнатите заредени си я дава грешката..

Снимка от Ide-то

Какво не съм направил? Или какво пропускам?

Поздрави,
Илиян

Тагове:
0
C++ OOP 18/09/2021 23:21:24
Smeshan avatar Smeshan 89 Точки

Оправих го.

В tasks.json написах да чете всички cpp-та ( "${workspaceFolder}\\*.cpp", ).

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++.exe build active file",
			"command": "C:/msys64/mingw64/bin/g++.exe",
			"args": [
				"-g",
				"${workspaceFolder}\\*.cpp",
				//"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "C:/msys64/mingw64/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "compiler: C:/msys64/mingw64/bin/g++.exe"
		}
	]
}

За сега..

1