Câu trả lời:
Nếu nó là một chương trình nguồn đơn giản:
make foo
trong đó tệp nguồn là foo.c hoặc foo.cpp, v.v.
Bạn thậm chí không cần một makefile. Make có đủ các quy tắc dựng sẵn để xây dựng tệp nguồn của bạn thành một tệp thực thi cùng tên, trừ phần mở rộng.
Chạy chương trình thực thi vừa được xây dựng cũng giống như chạy bất kỳ chương trình nào - nhưng bạn thường sẽ cần chỉ định đường dẫn đến tệp thực thi vì shell sẽ chỉ tìm kiếm những gì có trong $PATH
để tìm tệp thực thi và thường không bao gồm thư mục hiện tại ( .
).
Vì vậy, để chạy thực thi được xây dựng foo
:
./foo
make main.cpp
, nhưng make main
.
gcc main.cpp -o main.out
./main.out
Undefined symbols for architecture x86_64
vấn đề, tôi sửa đổi lệnh như sau: gcc -lstdc++ main.cpp -o main.out
và nó hoạt động trên máy Mac của tôi. thông qua liên kết: stackoverflow.com/questions/11852568/
Đây là lệnh hoạt động trên tất cả các máy Unix ... Tôi sử dụng nó trên Linux / Ubuntu, nhưng nó cũng hoạt động trong OS X. Nhập lệnh sau trong Terminal.app .
$ g++ -o lab21 iterative.cpp
-o
là chữ O không bằng không
lab21
sẽ là tập tin thực thi của bạn
iterative.cpp
là tập tin c ++ của bạn
Sau khi bạn chạy lệnh đó, hãy nhập lệnh sau trong terminal để chạy chương trình của bạn:
$ ./lab21
Hai bước cho tôi:
Đầu tiên:
make foo
sau đó:
./foo
./foo
dunno làm thế nào câu trả lời được chấp nhận không có phần lệnh quan trọng này
Tất cả thực thi ứng dụng trong môi trường Unix (Linux, Mac OS X, AIX, v.v.) phụ thuộc vào đường dẫn tìm kiếm thực thi.
Bạn có thể hiển thị đường dẫn này trong terminal bằng lệnh này:
tiếng vang $ PATH
Trên Mac OS X (theo mặc định), điều này sẽ hiển thị đường dẫn tìm kiếm được phân tách bằng dấu hai chấm sau:
/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / usr / X11 / bin
Vì vậy, bất kỳ thực thi trong các thư mục được liệt kê có thể bằng cách chạy chỉ bằng cách gõ tên của họ. Ví dụ:
mèo mytextfile.txt
Điều này chạy /bin/cat
và hiển thị mytextfile.txt cho thiết bị đầu cuối.
Để chạy bất kỳ lệnh nào khác không có trong đường dẫn tìm kiếm thực thi, đòi hỏi bạn phải đủ điều kiện đường dẫn đến tệp thực thi. Vì vậy, giả sử tôi có một chương trình thực thi có tên MyProgram trong thư mục nhà của tôi trên Mac OS XI hoàn toàn có thể đủ điều kiện như vậy:
/ Người dùng / oliver / Chương trình của tôi
Nếu bạn đang ở một địa điểm gần chương trình bạn muốn thực hiện, bạn có thể đủ điều kiện đặt tên với một đường dẫn một phần. Ví dụ: nếu MyProgram
trong thư mục /Users/oliver/MyProject
tôi và tôi ở trong thư mục nhà của tôi, tôi có thể đủ điều kiện tên thực thi như thế này và để nó thực thi:
MyProject / MyProgram
Hoặc nói rằng tôi đã ở trong thư mục /Users/oliver/MyProject2
và tôi muốn thực thi /Users/oliver/MyProject/MyProgram
Tôi có thể sử dụng một đường dẫn tương đối như thế này, để thực thi nó:
../MyProject/MyProgram
Tương tự như vậy nếu tôi ở cùng thư mục với MyProgram
tôi cần sử dụng đường dẫn tương đối "thư mục hiện tại". Thư mục hiện tại bạn đang ở là ký tự dấu chấm theo sau dấu gạch chéo. Ví dụ:
./Chương trình của tôi
Để xác định thư mục nào bạn hiện đang sử dụng pwd
lệnh.
Nếu bạn thường đặt các chương trình ở một vị trí trên đĩa cứng mà bạn muốn chạy mà không cần phải đủ điều kiện để đặt tên cho chúng. Ví dụ: nếu bạn có một thư mục "bin" trong thư mục chính của bạn cho các tập lệnh shell được sử dụng thường xuyên của các chương trình khác, có thể là khôn ngoan để thay đổi đường dẫn tìm kiếm thực thi của bạn.
Điều này có thể được thực hiện dễ dàng bằng cách tạo hoặc chỉnh sửa .bash_profile
tệp hiện có trong thư mục chính của bạn và thêm các dòng:
#!/bin/sh
export PATH=$PATH:~/bin
Ở đây, ký tự dấu ngã (~) đang được sử dụng làm lối tắt cho / Users / oliver. Cũng lưu ý rằng dòng băm (#!) Cần phải là dòng đầu tiên của tệp (nếu nó chưa tồn tại). Cũng lưu ý rằng kỹ thuật này yêu cầu shell đăng nhập của bạn phải bash (mặc định trên Mac OS X và hầu hết các bản phân phối Linux). Cũng lưu ý rằng nếu bạn muốn các chương trình của mình được cài đặt ~/bin
được sử dụng theo sở thích để thực thi hệ thống, bạn nên sắp xếp lại câu lệnh xuất như sau:
export PATH=~/bin:$PATH
Ryan, tôi đang thay đổi điều này thành một câu trả lời thay vì bình luận, vì có vẻ như tôi quá ngắn gọn. Làm tất cả những điều này trong "Terminal".
Để sử dụng trình biên dịch G ++, bạn cần làm điều này:
Điều hướng đến thư mục mà bạn đã lưu trữ tệp * .cpp.
cd ~/programs/myprograms/
(~ là lối tắt cho nhà của bạn, tức là / Người dùng / Ryan / chương trình / myprograms /, thay thế bằng vị trí bạn thực sự sử dụng.)
Biên dịch nó
g++ input.cpp -o output.bin
(output.bin có thể là bất cứ điều gì với bất kỳ tiện ích mở rộng nào, thực sự. bin chỉ phổ biến trên unix.)
Không nên trả lại nếu nó thành công, và điều đó không sao . Nói chung, bạn nhận được lợi nhuận từ thất bại.
Tuy nhiên, nếu bạn nhập ls
, bạn sẽ thấy danh sách các tệp trong cùng thư mục. Ví dụ: bạn sẽ thấy các thư mục khác, input.cpp và output.bin
Từ trong thư mục, bây giờ thực hiện nó với ./outbut.bin
Giả sử thư mục hiện tại không có trong đường dẫn, cú pháp là ./[name of the program]
.
Ví dụ ./a.out
Thêm vào sau để có được cảnh báo tốt nhất, bạn sẽ không hối tiếc. Nếu bạn có thể, hãy biên dịch WISE (cảnh báo là lỗi)
- Wall -pedantic -Weffc++ -Werror
Để biên dịch chương trình C hoặc C ++, có một lệnh chung:
make filename
./filename
make sẽ xây dựng tệp nguồn của bạn thành một tệp thực thi có cùng tên. Nhưng nếu bạn muốn sử dụng cách tiêu chuẩn, Bạn có thể sử dụng trình biên dịch gcc để xây dựng chương trình C & g ++ cho c ++
Đối với C:
gcc filename.c
./a.out
Đối với C ++:
g++ filename.cpp
./a.out
Sử dụng a makefile
. Ngay cả đối với các dự án rất nhỏ (= một tệp), nỗ lực có thể đáng giá vì bạn có thể có một vài bộ cài đặt trình biên dịch để kiểm tra mọi thứ. Gỡ lỗi và triển khai hoạt động dễ dàng hơn nhiều theo cách này.
Đọc make
hướng dẫn , nó có vẻ khá dài thoạt nhìn nhưng hầu hết các phần bạn chỉ có thể lướt qua. Tất cả trong tất cả nó đã làm tôi mất một vài giờ và làm cho tôi năng suất hơn nhiều.
Tôi tìm thấy liên kết này với các hướng dẫn:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
Về cơ bản bạn làm:
gcc hello.c
./a.out (or with the output file of the first command)
gcc hello.c -o a.out
gì không? Mà không giống như gcc hello.c
.
chỉ cần nhập vào thư mục chứa tập tin c / cpp của bạn.
để biên dịch và chạy mã c.
$gcc filename.c
$./a.out filename.c
để biên dịch và chạy mã c ++.
$g++ filename.cpp
$./a.out filename.cpp
"$" là ký hiệu thiết bị đầu cuối mac mặc định
Để biên dịch và chạy mã nguồn cpp từ thiết bị đầu cuối Mac, bạn cần thực hiện các bước sau:
Chạy tệp .C bằng thiết bị đầu cuối là một quá trình gồm hai bước. Bước đầu tiên là nhập gcc trong thiết bị đầu cuối và thả tệp .C vào thiết bị đầu cuối, sau đó nhấn Enter:
username$ gcc /Desktop/test.c
Trong bước thứ hai, chạy lệnh sau:
username$ ~/a.out
Để chạy các tệp c ++ chạy bên dưới lệnh, Giả sử tên tệp là "main.cpp"
1.Compile để tạo tệp đối tượng từ tệp c ++.
g++ -c main.cpp -o main.o
2.Since #include <conio.h>
không hỗ trợ trong MacOS, vì vậy chúng ta nên sử dụng giải pháp thay thế hỗ trợ trong Mac #include <curses.h>
. Bây giờ tập tin đối tượng cần phải được chuyển đổi thành tập tin thực thi. Để sử dụng curses.h
chúng ta phải sử dụng thư viện -lcurses
.
g++ -o main main.o -lcurses
3. Bây giờ chạy thực thi.
./main