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.outktó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.cpppowinien 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.cpplub 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.outlub 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 -opolecenia g ++.
Na przykład
g++ -o output foo.cpp
Spowoduje to kompilację foo.cppdo podanego pliku binarnego outputi możesz wpisać, ./outputaby uruchomić skompilowany kod.
a.outw 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.cppjest 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 Projectsfolderze 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.ccz 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 ++ gccjest 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 .Crozszerzenia, 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.outplik, który można uruchomić./a.out