• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

kompilacja obiektowego pliku c++ w visual studio code

0 głosów
715 wizyt
pytanie zadane 6 listopada 2020 w C i C++ przez user4132 Nowicjusz (170 p.)
Witam

Mam problem z kompilacją kodu obiektowego w visual studio code w Windows , w Linux wystarczyło zrobić plik projektu rozszerzeniem "C/C++ Makefile Project" i pod F6 kompilowało wszystkie pliki znajdujące się w folderze .

W Windowsie po F6 mogę skompilować tylko pojedynczy plik,

Przykładowo plik z 2 odc obiektowego c++ przy kompilacji wyskakuje

[main.cpp 2020-11-06 17:08:30.535]

,,c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\ff\AppData\Local\Temp\cc4EmpcP.o:main.cpp:(.text+0x85): undefined reference to `Pytanie::wczytaj()'

c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\ff\AppData\Local\Temp\cc4EmpcP.o:main.cpp:(.text+0x9d): undefined reference to `Pytanie::zadaj()'

c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\ff\AppData\Local\Temp\cc4EmpcP.o:main.cpp:(.text+0xb5): undefined reference to `Pytanie::sprawdz()'

collect2.exe: error: ld returned 1 exit status
najbliższy podobny problem jaki znalazłem https://forum.pasja-informatyki.pl/484075/visual-studio-code-odcinek-%232-obiektowy?show=484075#q484075 i w cmd da radę w ten sposób

 g++ -std=c++17 main.cpp pytanie.h pytanie.cpp -o a.exe
,nie jest to jednak do końca wygodne w porównaniu z kompilacją pod jednym guzikiem w szczególności kiedy jest więcej plików .

Moje pytanie co zrobić aby kompilować w łatwy sposób ? Nw może jakieś rozszerzenie , link do strony ,you tube rozwiązujący problem nie koniecznie po polsku. Są jakieś lepsze kompilatory do tego ? używam g++ (MinGW.org GCC Build-2) 9.2.0.
1
komentarz 6 listopada 2020 przez adrian17 Ekspert (319,660 p.)

w Linux wystarczyło zrobić plik projektu rozszerzeniem "C/C++ Makefile Project"

Um, a gdzie coś takiego ustawiałeś? W jakim środowisku? Czemu nie możesz zrobić tego samego na windowsie?

komentarz 6 listopada 2020 przez user4132 Nowicjusz (170 p.)
Problem jest że robię to samo co na linux , a nie działa ,tylko ścieżkę folderu zmieniam bo jest inna. Plik projektu robię w "C/C++ Makefile Project" a odpalam kompilację pod f6 w "C/C++ Compile Run".

1 odpowiedź

+1 głos
odpowiedź 6 listopada 2020 przez j23 Mędrzec (172,940 p.)
wybrane 7 listopada 2020 przez user4132
 
Najlepsza

nie jest to jednak do końca wygodne w porównaniu z kompilacją pod jednym guzikiem w szczególności kiedy jest więcej plików .

W VSC możesz sobie wygenerować "taska", który będzie kompilował to, co mu tam dodasz w parametrach g++.

komentarz 6 listopada 2020 przez user4132 Nowicjusz (170 p.)
A w jaki sposób mógłbym wygenerować takiego taska ?
komentarz 6 listopada 2020 przez j23 Mędrzec (172,940 p.)

Otwierasz w VSC folder z projektem i w Terminal ► Configure Tasks ► C/C++: g++ build active file i modyfikujesz fragment:

"label": "C/C++: g++ build project",
...

"command": "g++",
"args": [
	"-std=c++17",
	"-Wall",
	"-O2",
	"main.cpp",
    "pytanie.cpp",
	"-o",
	"nazwa-aplikacji"
],

"options": {
	"cwd": "${workspaceFolder}"
},

Taska wywołujesz komendą Run Task.

PS. jeśli plików jest więcej, to lepiej użyć jakiegoś build-systemu np. CMake.

Podobne pytania

0 głosów
0 odpowiedzi 269 wizyt
0 głosów
1 odpowiedź 385 wizyt
0 głosów
1 odpowiedź 122 wizyt

87,946 zapytań

136,526 odpowiedzi

304,410 komentarzy

58,313 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...