2009-07-17 7 views
6

Tôi đang sử dụng Linux Ubuntu Intrepid Ibex và biên dịch các tệp C++ với GCC, nhưng khi tôi biên dịch, gcc tạo tệp **. Out *, đó là tệp thực thi, nhưng làm thế nào tôi có thể tạo Linux thực thi? Cảm ơn!Xây dựng một Linux thực thi bằng cách sử dụng GCC

+0

Sự khác nhau giữa bạn giữa tệp thực thi và một tệp thực thi Linux là gì? – Ben

+0

bạn có thể làm rõ? Các tệp '* .out' là các tệp thực thi. Bạn có cần một loại thực thi khác không? – notnoop

+0

Nathan, tên 'a.out' là một tạo tác lịch sử, từ các trình biên dịch Unix sớm nhất. Xem bài viết Wikipedia về chủ đề: http://en.wikipedia.org/wiki/A.out – quark

Trả lời

18

Tệp thực thi đó là "Linux thực thi" - nghĩa là, nó có thể thực thi trên bất kỳ hệ thống Linux nào gần đây. Bạn có thể đổi tên các tập tin vào những gì bạn muốn sử dụng

rename a.out your-executable-name

hoặc tốt hơn nữa, nói với GCC nơi để đặt tập tin đầu ra của nó sử dụng

gcc -o your-executable-name your-source-file.c

Hãy ghi nhớ rằng trước khi các hệ thống Linux sẽ cho phép bạn chạy các tập tin , bạn có thể cần phải thiết lập "bit thực thi" của nó:

chmod +x your-executable-name

Cũng nên nhớ rằng trên Linux, phần mở rộng của tập tin có rất ít để làm với những gì nó thực sự là - thực thi của bạn có thể được đặt tên là something, something.out, hoặc thậm chí something.exe, và miễn là nó được sản xuất bởi GCC và bạn làm chmod +x trên tệp, bạn có thể chạy nó dưới dạng tệp thực thi Linux.

+0

Cảm ơn rất nhiều !!!!! –

+4

Không gcc (trên thực tế là liên kết nó gọi) đã thiết lập bit thực thi trong tập tin đầu ra của nó? – CesarB

+2

@CesarB: Đúng vậy, lệnh gọi gcc sẽ thực thi 'tên có thể thực thi' của bạn theo mặc định. – quark

2

Đó là tệp thực thi. Nếu bạn không thích a.out, bạn có thể chuyển cờ -o tới trình biên dịch. Nếu tệp thực thi không được đánh dấu bằng bit thực thi, bạn cần phải tự làm như vậy:

chmod u+x ./a.out 
./a.out 

HTH.

+0

Tệp * .out đã là một tệp thực thi, nhưng làm thế nào tôi có thể xây dựng một tệp thực thi Linux gốc, các tệp thi hành gốc của Linux không có phần mở rộng. –

+5

Trong linux, các phần mở rộng không quan trọng. Bạn chỉ có thể đổi tên tệp thành bất kỳ thứ gì bạn thích. – notnoop

+0

Khi vấn đề là sự chấp thuận tôi biết. Cảm ơn! –

4

Để tạo một thực thi gọi là myprog bạn có thể gọi gcc như thế này:

gcc -c -o myprog something.c 

Bạn cũng có thể chỉ đổi tên file * .out gcc tạo đến tên bạn muốn.