2012-12-15 70 views
31

Tôi đang học C cho một lớp tại trường đại học của mình và muốn viết chương trình bằng trình soạn thảo văn bản TextWrangler trên máy Mac (chạy OSX Lion 10.7). Khi tôi viết tệp .c, tôi biên dịch nó bằng gcc. Tôi đã tải xuống trình biên dịch từ Công cụ dành cho nhà phát triển của Apple.Cách biên dịch và chạy chương trình C trên Mac OS X

Nó được bao gồm trong tải xuống công cụ dòng lệnh. Tôi định vị tệp bằng cách sử dụng Terminal, biên dịch nó bằng gcc filename.c nơi tệp thực thi a.out được tạo. Tuy nhiên, khi tôi nhập "a.out" hoặc "/a.out", tôi nhận được các thông báo sau: "-bash: a.out: command not found" hoặc "-bash: /a.out: Không có tệp hoặc thư mục nào như vậy ". Tôi đã biên dịch thành công và chạy các chương trình C trên các hệ thống Linux trước khi sử dụng phương thức tương tự này. Tôi đang làm gì sai trên máy Mac?

Trả lời

40

Bạn cần phải thêm một dấu chấm để chỉ ra rằng thực thi trong thư mục hiện hành, như thư mục hiện hành không nằm trong đường dẫn:

./a.out 
+0

Điều đó đã làm nó! Cảm ơn! – JT9

+2

@JTWheeler, bạn cũng có thể xem xét đặt tên tệp đối tượng của bạn vì điều này sẽ ngăn không cho a.out bị ghi đè khi biên dịch nhiều chương trình C theo cách thủ công trong cùng một thư mục. Làm 'gcc myprog1.c -o myprog1.o' và chạy nó bằng cách thực hiện './myprog1.o'. Chỉ là một gợi ý. Và cách khác bạn có thể sử dụng clang thay vì gcc để bạn thực hành mã vì nó cung cấp chi tiết lỗi tốt hơn. – Bharat

3

hãy chắc chắn để thiết lập quyền của bạn thực thi với chmod + x một .out

+3

gcc thực hiện điều đó cho bạn ... Không cần chạy chmod – benjarobin

+0

Đúng, nhưng đây là thực hành tốt vì không phải ai cũng sử dụng gcc. – MichaelM

4

Bạn cần phải thêm một dấu chấm ở phía trước của slash:

./a.out 

/a.out sẽ cố gắng để thực hiện một chương trình trong thư mục gốc (/).
a.out sẽ tìm chương trình của bạn trong tất cả các thư mục được xác định trong biến môi trường PATH.

Tôi đã biên dịch thành công và chạy chương trình C trên hệ thống Linux trước khi sử dụng cùng một phương pháp này. Tôi đang làm gì sai trên máy Mac?

Bạn phải làm tương tự trên Linux.

17

Bạn đang thiếu một điều! Thay vì "/a.out", nó phải là "./a.out". Một điều hữu ích khác là thay đổi đầu ra để bạn có thể có nhiều chương trình được biên dịch. Đơn giản, điều duy nhất bạn cần đặt trong thiết bị đầu cuối là như sau (điền vào chỗ trống với những gì bạn muốn)

gcc nameofprogramyouwrote.c -o whatyouwanttheprogramtobenamed 

Chúc may mắn!

-2

Bạn sẽ cần trình biên dịch. Cách đơn giản nhất là cài đặt XCode. Bằng cách này, bạn sẽ có quyền truy cập vào "gcc", Do đó,

gcc -o mybinaryfile mysourcefile.c 

Sau đó, chạy như thế này.

./mybinaryfile 

Hy vọng điều này sẽ giúp !.

0

Xây dựng:

gcc -Wall -o yourFile yourFile.c 

Sau đó, để thực hiện:

./yourFile 
Các vấn đề liên quan