Jestem nowy w Linuksie. Używam Ubuntu 11.04 i nie wiem, jak skompilować i uruchomić w nim program C ++. Potrzebuję znać polecenia kompilowania i uruchamiania programu C ++ w systemie Linux.
Jestem nowy w Linuksie. Używam Ubuntu 11.04 i nie wiem, jak skompilować i uruchomić w nim program C ++. Potrzebuję znać polecenia kompilowania i uruchamiania programu C ++ w systemie Linux.
Odpowiedzi:
Aby skompilować kod c ++, użyj:
g++ foo.cpp
foo.cpp w tym przykładzie jest nazwą kompilowanego programu.
Spowoduje to utworzenie pliku wykonywalnego w tym samym katalogu o nazwie, a.out
który można uruchomić, wpisując to w swoim terminalu:
./a.out
g ++ powinien już znajdować się w $ PATH, więc nie musisz dzwonić /usr/bin/g++
jawnie, ale możesz użyć tego drugiego w każdym przypadku.
foo.cpp
powinien znajdować się w tym samym katalogu, z którego uruchomiono polecenie. W razie wątpliwości możesz upewnić się, że znajdujesz się w tym samym katalogu, wpisując ls foo.cpp
lub head foo.cpp
(jeśli musisz sprawdzić, czy pracujesz z poprawnym foo
.)
Jak zauważył @ con-f-use, kompilator zwykle sprawia, że ten plik jest wykonywalny, ale jeśli nie, możesz to zrobić sam (więc polecenie wykonania ./a.out
lub równoważne, będzie działać):
chmod +x ./a.out
Aby określić nazwę skompilowanego pliku wyjściowego, tak aby nie był nazwany a.out
, użyj -o
polecenia g ++.
Na przykład
g++ -o output foo.cpp
Spowoduje to kompilację foo.cpp
do podanego pliku binarnego output
i możesz wpisać, ./output
aby uruchomić skompilowany kod.
a.out
w tym przypadku) jest wykonywalny. Jeśli nie możesz to zrobić wpisując: chmod +x a.out
. Gdy skompilowany program jest wykonywalny, możesz go uruchomić, wpisując ./a.out
- kropka i ukośnik, że chcesz go uruchomić.
Przyjmuję tutaj dwa założenia:
Najprostszym sposobem na kompilację programu C ++ na Ubuntu lub innej dystrybucji Linuksa jest napisanie
g++ main.cpp -o main
g++ -o main main.cpp
jest równie poprawny.Powyższe polecenia zakładają, że jesteś już w lokalizacji plików źródłowych, ale zarówno plik źródłowy, jak i docelowy plik wyjściowy można również określić jako katalog. Na przykład
g++ ~/Desktop/main.cpp -o ~/Projects/main
skompiluje plik źródłowy C ++ znajdujący się na pulpicie i umieści wykonywalny plik binarny w Projects
folderze w katalogu domowym. Aby uruchomić ten plik wykonywalny, uruchom ./Projects/main
.
Tak lubię kompilować z g ++.
$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp
-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the
name of our source code file
-p: Generate extra code to write profile information suitable for the analysis program prof
-p: Generate extra code to write profile information suitable for the analysis program prof.
Potrzebujesz g ++, ponieważ gcc może nie skompilować pliku cpp łatwo.
Musisz także nauczyć się vima lub emacsa, aby pisać kod C.
Po prostu spróbuj tego na swoim terminalu:
Wpisz program testowy i zapisz go:
$vim hello.cc
Kompiluj hello.cc
z g ++:
$g++ hello.cc -o hello
Wykonaj to:
$./hello
Tutaj ./
oznacza, że plik exe znajduje się w bieżącym katalogu.
vi
, ale to nie ma znaczenia. Powinieneś odejść od sugerowania konkretnego edytora, każdy i tak używa własnego.
g++
jest nakładką na gcc
(GNU Compiler Collection) z niektórymi predefiniowanymi makrami c ++ i różnymi domyślnymi opcjami / flagami.
kompilowanie kodu c ++ gcc
jest przydatne, gdy g++
nie jest dostępne z wielu powodów, w rzeczywistości jest to tylko kwestia połączenia z biblioteką c ++ -lstdc++
i poinformowania gcc, aby traktował dane wejściowe jako kod c ++ (albo przez użycie .C
rozszerzenia, albo narzucenie języka za pomocą -x
)
innych ważnych przyrostków nazw plików c ++: .cc
, .cp
, .cxx
, .cpp
, .CPP
,.c++
przykład:
gcc cpp_code.C -lstdc++
rozszerzenie wielkie litery ( .C
) jest ważne, aby gcc wiedział, że jest to plik c ++.
lub jawnie określając język wprowadzania:
gcc -x c++ cpp_code.txt -lstdc++
rozszerzenie może być czymkolwiek, a nawet niczym
domyślnie wynikiem (po udanej kompilacji) jest a.out
plik, który można uruchomić./a.out