Biên dịch chương trình Hello World đơn giản trên OS X thông qua dòng lệnh


101

Tôi có một ví dụ đơn giản về hello world mà tôi đang cố gắng biên dịch trên OS X, có tên hw.cpp:

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

Tôi muốn biên dịch nó bằng cách 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?


7
"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.
Gareth Davidson

Câu trả lời:


187

Thử

g++ hw.cpp
./a.out

g++là giao diện người dùng của trình biên dịch C ++ cho GCC.
gcclà giao diện người dùng của 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 GCC.

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

#include <iostream>

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

17
@math: return 0là ẩn trong main.
fredoverflow

3
@mathepic: và +1. Nó không bắt buộc trong C ++. Nếu mainđạt kết thúc chức năng mà không cần nhấn một trở lại sau đó nó mặc nhiên trả về 0.
Martin York

2
À được rồi. Tôi vẫn sẽ sử dụng nó cho rõ ràng.
thay thế

4
@mathepic: Đó là 1 ý kiến. Cá nhân tôi thấy nó rõ ràng hơn để không sử dụng nó.
Martin York

1
Tại sao a.out? Trong cửa sổ tôi mong đợi để xem a.exe. Trong * nix, chúng tôi không cần phần mở rộng. Tại sao sử dụng .out mà không có phần mở rộng? acũng là một cái tên mặc định kỳ lạ.
P.Brian.Mackey



5

Biên dịch nó với gccyêu cầu 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 vào đó.


2

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

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

Điều này mang lại cho tôild: can't link with a main executable file './a.out' for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Eddified

@ Rat-a-tat-a-tat xin lỗi tôi không nhớ, là 3 năm trước.
Chỉnh sửa

1

Bạn đã không chỉ rõ lỗi bạn đang gặp phải là gì.

Có phải sự cố gccđang gây ra lỗi cho bạn hay bạn hoàn toàn không thể chạy gcc?

Nếu là cái thứ hai, thì lời giải thích rất có thể là bạn đã không chọn "Hỗ trợ phát triển UNIX" khi bạn cài đặt các công cụ phát triển, vì vậy các tệp thực thi 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

Ngoài ra, bạn có thể sử dụng IDE như CLion (JetBrains) hoặc một trình soạn thảo văn bản như Atom, với plugin gpp-compiler, hoạt động giống như một chiếc bùa (F5 để biên dịch và thực thi).


1

Sử dụng phần sau cho nhiều tệp .cpp

g++ *.cpp
./a.out
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.