Jak mogę skompilować / uruchomić C lub C ++ w konsoli Unix lub terminalu Mac?
(Wiem o tym, zapomnij o tym i naucz się ponownie. Czas to zapisać.)
Jeśli jest to prosty program z jednego źródła:
make foo
gdzie plik źródłowy to foo.c lub foo.cpp itp.
Nie potrzebujesz nawet pliku makefile. Make ma wystarczającą liczbę wbudowanych reguł, aby zbudować plik źródłowy w pliku wykonywalnym o tej samej nazwie, bez rozszerzenia.
Uruchomienie właśnie zbudowanego pliku wykonywalnego jest tym samym, co uruchomienie dowolnego programu - ale najczęściej będziesz musiał określić ścieżkę do pliku wykonywalnego, ponieważ powłoka będzie przeszukiwać tylko to, co jest, $PATH
aby znaleźć pliki wykonywalne i najczęściej nie obejmuje to bieżącego katalogu ( .
).
Aby więc uruchomić zbudowany plik wykonywalny foo
:
./foo
make main.cpp
, alemake main
.źródło
Undefined symbols for architecture x86_64
sprawy, modyfikuję polecenie w następujący sposób:gcc -lstdc++ main.cpp -o main.out
i to działa na moim Macu. przez link: stackoverflow.com/questions/11852568/…To jest polecenie, które działa na wszystkich komputerach Unix ... Używam go na Linuksie / Ubuntu, ale działa również w OS X. Wpisz następujące polecenie w Terminal.app .
-o
to litera O, a nie zerolab21
będzie twoim plikiem wykonywalnymiterative.cpp
to Twój plik C ++Po uruchomieniu tego polecenia wpisz następujące polecenie w terminalu, aby uruchomić program:
źródło
Dwa kroki dla mnie:
pierwszy:
następnie:
źródło
./foo
nie wiem, jak zaakceptowana odpowiedź nie zawiera tego ważnego elementu poleceniaWszystkie działania aplikacji w środowisku Unix (Linux, Mac OS X, AIX itp.) Zależą od wykonywalnej ścieżki wyszukiwania.
Możesz wyświetlić tę ścieżkę w terminalu za pomocą tego polecenia:
W systemie Mac OS X (domyślnie) spowoduje to wyświetlenie następującej ścieżki wyszukiwania oddzielonej dwukropkami:
Tak więc każdy plik wykonywalny w wymienionych katalogach można uruchomić po prostu wpisując jego nazwę. Na przykład:
To działa
/bin/cat
i wyświetla mytextfile.txt na terminalu.Aby uruchomić jakiekolwiek inne polecenie, które nie znajduje się na ścieżce wyszukiwania pliku wykonywalnego, należy określić ścieżkę do pliku wykonywalnego. Powiedzmy, że mam plik wykonywalny o nazwie MyProgram w moim katalogu domowym na Mac OS XI, który może go w pełni zakwalifikować w następujący sposób:
Jeśli znajdujesz się w pobliżu programu, który chciałeś wykonać, możesz określić nazwę za pomocą częściowej ścieżki. Na przykład, jeśli
MyProgram
znajdowałem się w katalogu, który/Users/oliver/MyProject
ja i ja byłem w moim katalogu domowym, mogę określić nazwę pliku wykonywalnego w ten sposób i zlecić wykonanie:Lub powiedz, że byłem w katalogu
/Users/oliver/MyProject2
i chciałem wykonać/Users/oliver/MyProject/MyProgram
, mogę użyć ścieżki względnej takiej jak ta, aby ją wykonać:Podobnie, jeśli znajduję się w tym samym katalogu, w którym
MyProgram
muszę użyć ścieżki względnej „katalogu bieżącego”. Bieżący katalog, w którym się znajdujesz, to kropka, po której następuje ukośnik. Na przykład:Aby określić, który katalog jest obecnie używany, plik
pwd
polecenia.Jeśli często umieszczasz programy w miejscu na dysku twardym, które chcesz uruchamiać, bez konieczności kwalifikowania ich nazw. Na przykład, jeśli masz katalog „bin” w swoim katalogu domowym dla regularnie używanych skryptów powłoki innych programów, rozsądnie może być zmiana ścieżki wyszukiwania plików wykonywalnych.
Można to łatwo zrobić, tworząc lub edytując istniejący
.bash_profile
plik w katalogu domowym i dodając wiersze:Tutaj znak tyldy (~) jest używany jako skrót dla / Users / oliver. Zauważ również, że linia hash bang (#!) Musi być pierwszą linią pliku (jeśli jeszcze nie istnieje). Zwróć również uwagę, że ta technika wymaga, aby powłoka logowania była bash (domyślna w systemie Mac OS X i większości dystrybucji Linuksa). Należy również pamiętać, że jeśli chcesz, aby Twoje programy zainstalowane w programie
~/bin
były używane zamiast plików wykonywalnych systemu, należy zmienić kolejność instrukcji eksportu w następujący sposób:źródło
Ryan, zmieniam to tak, aby była odpowiedzią zamiast komentarza, ponieważ wygląda na to, że byłam zbyt krótka. Zrób to wszystko w „Terminalu”.
Aby użyć kompilatora G ++, musisz zrobić to:
Przejdź do katalogu, w którym zapisałeś plik * .cpp.
cd ~/programs/myprograms/
(~ to skrót do twojego domu, np. / Users / Ryan / Programs / myprograms /, zamień na lokalizację, z której faktycznie korzystałeś).
Skompiluj to
g++ input.cpp -o output.bin
(output.bin może być wszystkim z dowolnym rozszerzeniem, tak naprawdę. bin jest po prostu powszechny na unixach).Jeśli się powiedzie, NIC nie powinno zostać zwrócone i to jest w porządku . Generalnie otrzymujesz zwroty w przypadku awarii.
Jeśli jednak wpiszesz
ls
, zobaczysz listę plików w tym samym katalogu. Na przykład zobaczysz inne foldery, input.cpp i output.binZ wnętrza katalogu uruchom go teraz za pomocą
./outbut.bin
źródło
make
nie zadziała, ponieważ nie ma pliku makefile.Kompaktowym sposobem na zrobienie tego może być:
Miło jest mieć jednolinijkowy plik, dzięki czemu można łatwo ponownie uruchomić plik wykonywalny.
źródło
Zakładając, że bieżący katalog nie znajduje się w ścieżce, składnia to
./[name of the program]
.Na przykład
./a.out
źródło
Dodaj następujące, aby uzyskać najlepsze ostrzeżenia, nie pożałujesz. Jeśli możesz, skompiluj WISE (ostrzeżenie to błąd)
źródło
Aby skompilować programy w C lub C ++, istnieje wspólne polecenie:
make filename
./filename
make zbuduje plik źródłowy w plik wykonywalny o tej samej nazwie. Ale jeśli chcesz użyć standardowego sposobu, możesz użyć kompilatora gcc do zbudowania programów w C & g ++ dla c ++
Dla C:
Dla C ++:
źródło
Użyć
makefile
. Nawet w przypadku bardzo małych (= jednoplikowych) projektów wysiłek jest prawdopodobnie tego wart, ponieważ możesz mieć kilka zestawów ustawień kompilatora do testowania. W ten sposób debugowanie i wdrażanie działa znacznie łatwiej.Przeczytaj
make
instrukcję , na pierwszy rzut oka wydaje się dość długa, ale większość sekcji można po prostu przejrzeć. W sumie zajęło mi to kilka godzin i znacznie zwiększyło produktywność.źródło
Znalazłem ten link ze wskazówkami:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
Zasadniczo robisz:
źródło
gcc hello.c -o a.out
? Który robi to samo cogcc hello.c
.po prostu wejdź do katalogu, w którym znajduje się twój plik c / cpp.
do kompilowania i uruchamiania kodu C.
do kompilowania i uruchamiania kodu C ++.
„$” jest domyślnym symbolem terminala Mac
źródło
Aby skompilować i uruchomić kod źródłowy cpp z terminala Mac, należy wykonać następujące czynności:
źródło
Uruchamianie pliku .C za pomocą terminala to proces dwuetapowy. Pierwszym krokiem jest wpisanie gcc w terminalu i upuszczenie pliku .C na terminal, a następnie wciśnięcie Enter:
W drugim kroku uruchom następujące polecenie:
źródło
Aby uruchomić pliki C ++, uruchom poniższe polecenie, zakładając, że nazwa pliku to „main.cpp”
1.Kompiluj, aby utworzyć plik obiektowy z pliku C ++.
Ponieważ
#include <conio.h>
nie obsługuje systemu MacOS, powinniśmy użyć jego alternatywy, która obsługuje to w systemie Mac#include <curses.h>
. Teraz plik obiektowy musi zostać przekonwertowany na plik wykonywalny. Aby skorzystać,curses.h
musimy skorzystać z biblioteki-lcurses
.3. Teraz uruchom plik wykonywalny.
źródło