Відповіді:
Якщо це проста програма з єдиним джерелом:
make foo
де вихідним файлом є foo.c або foo.cpp тощо.
Вам навіть не потрібен makefile. Make має достатньо вбудованих правил, щоб створити вихідний файл у однойменному виконуваному файлі, мінус розширення.
Запуск щойно створеного виконуваного файлу - це те саме, що і для запуску будь-якої програми, але найчастіше вам потрібно буде вказати шлях до виконуваного файлу, оскільки оболонка буде шукати лише те, що є, $PATH
щоб знайти виконувану програму, і найчастіше, що не включає поточний каталог ( .
).
Отже, для запуску вбудованого виконуваного файлу foo
:
./foo
make main.cpp
, але make main
.
gcc main.cpp -o main.out
./main.out
Undefined symbols for architecture x86_64
проблеми, я змінюю команду наступним чином:, gcc -lstdc++ main.cpp -o main.out
і це працює на моєму Mac. за посиланням: stackoverflow.com/questions/11852568 / ...
Це команда, яка працює на всіх машинах Unix ... Я використовую її на Linux / Ubuntu, але вона працює і в OS X. Введіть таку команду в Terminal.app .
$ g++ -o lab21 iterative.cpp
-o
- літера О не нульова
lab21
буде вашим виконуваним файлом
iterative.cpp
ваш файл c ++
Після запуску цієї команди в терміналі введіть наступне:
$ ./lab21
Два кроки для мене:
перший:
make foo
тоді:
./foo
./foo
не знаю, як прийнята відповідь не має цієї важливої команди
Все виконання програми в середовищі Unix (Linux, Mac OS X, AIX тощо) залежить від виконуваного шляху пошуку.
Ви можете відобразити цей шлях у терміналі за допомогою цієї команди:
echo $ PATH
У Mac OS X (за замовчуванням) відображатиметься наступний шлях, відокремлений двокрапкою:
/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / usr / X11 / bin
Тож будь-який виконуваний файл у перелічених каталогах можна запустити, просто ввівши їх ім’я. Наприклад:
кішка mytextfile.txt
Це запускається /bin/cat
та відображає mytextfile.txt до терміналу.
Для запуску будь-якої іншої команди, яка не знаходиться у виконуваному шляху пошуку, потрібно кваліфікувати шлях до виконуваного файлу. Так що скажіть, у мене в моєму домашньому каталозі на Mac OS XI був виконаний файл з назвою MyProgram, і його можна повністю кваліфікувати так:
/ Користувачі / oliver / MyProgram
Якщо ви знаходитесь у місці, яке знаходиться поруч із програмою, яку ви хотіли виконати, ви можете визначити ім'я за допомогою часткового шляху. Наприклад, якщо я MyProgram
знаходився в каталозі /Users/oliver/MyProject
I, і я був у своєму домашньому каталозі, я можу кваліфікувати ім'я виконавця, як це, і дозволити його виконувати:
MyProject / MyProgram
Або скажіть, що я був у каталозі, /Users/oliver/MyProject2
і я хотів виконати, /Users/oliver/MyProject/MyProgram
я можу використовувати відносний шлях, як цей, для його виконання:
../MyProject/MyProgram
Аналогічно, якщо я перебуваю в тому самому каталозі, як MyProgram
мені потрібно використовувати відносний шлях "поточного каталогу". Поточний каталог, в якому ви перебуваєте, є символом періоду, за яким слід нахил. Наприклад:
./MyProgram
Щоб визначити, в якому каталозі ви зараз використовуєте pwd
команду.
Якщо ви зазвичай ставите програми на місце на своєму жорсткому диску, яке ви хочете запустити, не вимагаючи кваліфікувати їх імена. Наприклад, якщо у вашому домашньому каталозі є каталог "бін" для регулярно використовуваних скриптів оболонки інших програм, можливо, буде доцільно змінити ваш виконавчий шлях пошуку.
Це легко зробити, створивши або відредагувавши наявний .bash_profile
файл у домашній директорії та додавши рядки:
#!/bin/sh
export PATH=$PATH:~/bin
Тут символ tilde (~) використовується як ярлик для / Users / oliver. Також зауважте, що рядок хеш-бангу (#!) Повинен бути першим рядком файлу (якщо він ще не існує). Зауважте також, що ця методика вимагає, щоб ваша оболонка входу була bash (за замовчуванням у Mac OS X та більшості дистрибутивів Linux). Також зауважте, що якщо ви хочете, щоб ваші програми, встановлені в програмі, ~/bin
використовували перевагу перед системними виконуваними файлами, вам слід змінити порядок експорту таким чином:
export PATH=~/bin:$PATH
Райан, я змінюю це як відповідь, а не коментар, оскільки, здається, я був занадто коротким. Робіть усе це в «Терміналі».
Щоб використовувати компілятор G ++, вам потрібно зробити це:
Перейдіть до каталогу, в якому ви зберегли файл * .cpp.
cd ~/programs/myprograms/
(~ - це ярлик для вашого будинку, тобто / Користувачі / Ryan / програми / мої програми / замініть місцем, яке ви фактично використовували.)
Складіть його
g++ input.cpp -o output.bin
(output.bin може бути будь-чим із будь-яким розширенням, насправді. bin просто загальний на unix.)
Якщо НЕ МОЖАЛО повернутись, якщо це було успішно, і це нормально . Як правило, ви отримуєте віддачу від невдач.
Однак якщо ви введете ls
, ви побачите список файлів у тому самому каталозі. Наприклад, ви побачили б інші папки, input.cpp та output.bin
Зсередини каталогу, тепер виконайте його ./outbut.bin
Компактний спосіб зробити це може:
make foo && ./$_
Приємно мати один вкладиш, щоб ви могли просто легко запустити свій виконуваний файл знову.
Якщо припустити, що поточний каталог не стоїть на шляху, синтаксис є ./[name of the program]
.
Наприклад ./a.out
Додайте наступні, щоб отримати найкращі попередження, ви не пошкодуєте. Якщо можете, компілюйте WISE (попередження - помилка)
- Wall -pedantic -Weffc++ -Werror
Для компіляції програм C або C ++ існує загальна команда:
make filename
./filename
make створить ваш вихідний файл у виконуваний файл з тим же ім'ям. Але якщо ви хочете використовувати стандартний спосіб, ви можете використовувати компілятор gcc для створення програм C і g ++ для c ++
Для C:
gcc filename.c
./a.out
Для C ++:
g++ filename.cpp
./a.out
Використовуйте a makefile
. Навіть для дуже невеликих (= однофайлових) проектів, мабуть, цього варто, тому що для перевірки речей ви можете мати кілька наборів параметрів компілятора. Налагодження та розгортання працює набагато простіше.
Прочитайте make
посібник , на перший погляд це здається досить довгим, але більшість розділів ви можете просто пропустити. Загалом це зайняло у мене кілька годин і зробило мене набагато продуктивнішою.
Я знайшов це посилання з напрямками:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
В основному ви робите:
gcc hello.c
./a.out (or with the output file of the first command)
gcc hello.c -o a.out
? Що робить те саме, що gcc hello.c
.
просто введіть у каталог, у якому знаходиться ваш файл c / cpp.
для компіляції та запуску коду с.
$gcc filename.c
$./a.out filename.c
для компіляції та запуску коду c ++.
$g++ filename.cpp
$./a.out filename.cpp
"$" - символ терміналу mac за замовчуванням
Для компіляції та запуску вихідного коду cpp з терміналу Mac необхідно зробити наступне:
Запуск .C-файлу за допомогою терміналу - це двоетапний процес. Першим кроком є введення gcc в термінал і опустити файл .C до терміналу, а потім натиснути Enter:
username$ gcc /Desktop/test.c
На другому кроці запустіть таку команду:
username$ ~/a.out
Для запуску файлів c ++, запущених нижче команди, припустимо, що ім'я файлу - "main.cpp"
1.Compile, щоб зробити об’єктний файл із файлу c ++.
g++ -c main.cpp -o main.o
2.Since #include <conio.h>
не підтримує MacOS, тому ми повинні використовувати його альтернативу, яка підтримує в Mac, що є #include <curses.h>
. Тепер об’єктний файл потрібно перетворити на виконуваний файл. Для використання curses.h
ми повинні використовувати бібліотеку -lcurses
.
g++ -o main main.o -lcurses
3. Тепер запустіть виконуваний файл.
./main