Odpowiedzi:
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
, ale make main
.
gcc main.cpp -o main.out
./main.out
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 .
$ g++ -o lab21 iterative.cpp
-o
to litera O, a nie zero
lab21
będzie twoim plikiem wykonywalnym
iterative.cpp
to Twój plik C ++
Po uruchomieniu tego polecenia wpisz następujące polecenie w terminalu, aby uruchomić program:
$ ./lab21
Dwa kroki dla mnie:
pierwszy:
make foo
następnie:
./foo
./foo
nie wiem, jak zaakceptowana odpowiedź nie zawiera tego ważnego elementu polecenia
Wszystkie 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:
echo $ PATH
W systemie Mac OS X (domyślnie) spowoduje to wyświetlenie następującej ścieżki wyszukiwania oddzielonej dwukropkami:
/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / usr / X11 / bin
Tak więc każdy plik wykonywalny w wymienionych katalogach można uruchomić po prostu wpisując jego nazwę. Na przykład:
cat mytextfile.txt
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:
/ Users / oliver / MyProgram
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:
MyProject / MyProgram
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ć:
../MyProject/MyProgram
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:
./MyProgram
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:
#!/bin/sh
export PATH=$PATH:~/bin
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:
export PATH=~/bin:$PATH
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.bin
Z wnętrza katalogu uruchom go teraz za pomocą ./outbut.bin
Kompaktowym sposobem na zrobienie tego może być:
make foo && ./$_
Miło jest mieć jednolinijkowy plik, dzięki czemu można łatwo ponownie uruchomić plik wykonywalny.
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
Dodaj następujące, aby uzyskać najlepsze ostrzeżenia, nie pożałujesz. Jeśli możesz, skompiluj WISE (ostrzeżenie to błąd)
- Wall -pedantic -Weffc++ -Werror
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:
gcc filename.c
./a.out
Dla C ++:
g++ filename.cpp
./a.out
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ść.
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:
gcc hello.c
./a.out (or with the output file of the first command)
gcc hello.c -o a.out
? Który robi to samo co gcc hello.c
.
po prostu wejdź do katalogu, w którym znajduje się twój plik c / cpp.
do kompilowania i uruchamiania kodu C.
$gcc filename.c
$./a.out filename.c
do kompilowania i uruchamiania kodu C ++.
$g++ filename.cpp
$./a.out filename.cpp
„$” jest domyślnym symbolem terminala Mac
Aby skompilować i uruchomić kod źródłowy cpp z terminala Mac, należy wykonać następujące czynności:
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:
username$ gcc /Desktop/test.c
W drugim kroku uruchom następujące polecenie:
username$ ~/a.out
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 ++.
g++ -c main.cpp -o main.o
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
.
g++ -o main main.o -lcurses
3. Teraz uruchom plik wykonywalny.
./main