2010-11-01 39 views
57

Tôi đã có một ví dụ thế giới đơn giản chào mà tôi đang cố gắng để biên dịch trên OS X, tên hw.cpp:Biên soạn chương trình Hello World đơn giản trên OS X thông qua dòng lệnh

#include <iostream> 
#include <string> 
using namespace std; 
int main() { 
    cout << "Hello world!" << endl; 
    return 0; 
} 

Tôi muốn biên dịch nó sử dụng gcc, nhưng tôi đã không thành công. Tôi cũng muốn nghe các tùy chọn khác, như sử dụng Xcode?

+5

"Không thành công" không thực sự giúp bất cứ ai chẩn đoán vấn đề của bạn. –

Trả lời

118

Hãy thử

g++ hw.cpp 
./a.out 

g++ là C++ frontend để GCC.
gcc là giao diện trình biên dịch C cho GCC.

Có, Xcode chắc chắn là một tùy chọn. Nó là một IDE GUI được xây dựng trên đầu trang của GCC.

Mặc dù tôi thích một cách tiếp cận hơi dài dòng hơn:

#include <iostream> 

int main() 
{ 
    std::cout << "Hello world!" << std::endl; 
} 
+2

Đừng quên 'return 0' – alternative

+8

@math:' return 0' là ẩn trong chính. – fredoverflow

+3

@mathepic: và +1. Nó không được yêu cầu trong C++. Nếu 'main' đạt đến kết thúc của hàm mà không đánh trả lại thì nó trả về hoàn toàn 0. –

21
g++ hw.cpp -o hw 
./hw 
+0

Trong số tất cả những người khác, điều này làm việc ra tốt cho tôi. Cảm ơn. –

4

Biên soạn nó với gcc đòi hỏi bạn phải vượt qua một số tùy chọn dòng lệnh. Biên dịch nó với g++ để thay thế.

1

Bạn không chỉ định lỗi bạn đang thấy là gì.

Có phải vấn đề là gcc gây lỗi cho bạn hoặc bạn không thể chạy được gcc?

Nếu đó là phần sau, giải thích có khả năng nhất là bạn không kiểm tra "Hỗ trợ phát triển UNIX" khi bạn cài đặt công cụ phát triển, vì vậy các tệp thi hành dòng lệnh không được cài đặt trong đường dẫn của bạn. Cài đặt lại các công cụ phát triển và đảm bảo nhấp vào "tùy chỉnh" và chọn hộp đó.

1

Phiên bản mới này nên đọc như sau:

xcrun g++ hw.cpp 
./a.out 
+0

Điều này cho tôi 'ld: không thể liên kết với tệp thực thi chính './a.out' cho kiến ​​trúc x86_64 clang: error: lệnh liên kết không thành công với mã thoát 1 (sử dụng -v để xem lời gọi) ' – Eddified

+0

@Eddified: hi did u quản lý để khắc phục vấn đề này? tôi nhận được nó quá –

+0

@ Rat-a-tat-a-tat xin lỗi tôi không nhớ, đã được 3 năm trước đây. – Eddified

Các vấn đề liên quan