Tôi mới dùng Linux. Tôi đang sử dụng Ubuntu 11.04 và không biết cách biên dịch và thực thi chương trình C ++ trong đó. Tôi cần biết các lệnh để biên dịch và thực thi chương trình C ++ trong Linux.
Tôi mới dùng Linux. Tôi đang sử dụng Ubuntu 11.04 và không biết cách biên dịch và thực thi chương trình C ++ trong đó. Tôi cần biết các lệnh để biên dịch và thực thi chương trình C ++ trong Linux.
Câu trả lời:
Để biên dịch mã c ++ của bạn, hãy sử dụng:
g++ foo.cpp
foo.cpp trong ví dụ là tên của chương trình sẽ được biên dịch.
Điều này sẽ tạo ra một tệp thực thi trong cùng thư mục được gọi là a.out
bạn có thể chạy bằng cách gõ cái này trong terminal của bạn:
./a.out
g ++ nên có sẵn trong $ PATH của bạn, vì vậy bạn không cần phải gọi /usr/bin/g++
một cách rõ ràng, nhưng bạn có thể sử dụng cái sau trong mọi trường hợp.
foo.cpp
phải trong cùng thư mục bạn đang chạy lệnh từ. Nếu có bất kỳ nghi ngờ nào, bạn có thể đảm bảo rằng bạn đang ở trong cùng thư mục bằng cách nhập ls foo.cpp
hoặc head foo.cpp
(nếu bạn cần xác minh bạn đang làm việc với chính xác foo
.)
Theo ghi nhận của @ con-f-use, trình biên dịch thường sẽ làm cho tệp này có thể thực thi được, nhưng nếu không, bạn có thể tự làm điều này (để lệnh thực thi ./a.out
hoặc tương đương sẽ hoạt động):
chmod +x ./a.out
Để chỉ định tên của tệp đầu ra được biên dịch, để nó không được đặt tên a.out
, hãy sử dụng -o
với lệnh g ++ của bạn.
Ví dụ
g++ -o output foo.cpp
Điều này sẽ biên dịch foo.cpp
thành tệp nhị phân có tên output
và bạn có thể nhập ./output
để chạy mã được biên dịch.
a.out
trong trường hợp này) có thể thực thi được. Nếu không bạn có thể làm như vậy bằng cách gõ : chmod +x a.out
. Khi chương trình được biên dịch của bạn có thể thực thi được, bạn có thể chạy nó gõ ./a.out
- dấu chấm và dấu gạch chéo, mà bạn muốn thực thi nó.
Tôi đang đưa ra hai giả định ở đây:
Cách đơn giản nhất để biên dịch chương trình C ++ trên Ubuntu hoặc bất kỳ bản phân phối Linux nào khác cho vấn đề đó là nhập
g++ main.cpp -o main
g++ -o main main.cpp
có giá trị như nhau.Các lệnh trên giả sử bạn đã ở vị trí của tệp nguồn, nhưng cả tệp nguồn và tệp đầu ra đích cũng có thể được chỉ định làm thư mục. Ví dụ
g++ ~/Desktop/main.cpp -o ~/Projects/main
sẽ biên dịch một tệp nguồn C ++ nằm trên màn hình của bạn và đặt tệp nhị phân thực thi trong một Projects
thư mục trong thư mục chính của bạn. Để chạy thực thi này, chạy ./Projects/main
.
Đây là cách tôi muốn biên dịch với g ++.
$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp
-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the
name of our source code file
-p: Generate extra code to write profile information suitable for the analysis program prof
-p: Generate extra code to write profile information suitable for the analysis program prof.
Bạn cần g ++, vì gcc có thể không biên dịch tập tin cpp dễ dàng.
Bạn cũng cần học vim hoặc emacs để viết mã C.
Chỉ cần thử điều này trên thiết bị đầu cuối của bạn:
Nhập một chương trình thử nghiệm và lưu nó:
$vim hello.cc
Biên dịch hello.cc
với g ++:
$g++ hello.cc -o hello
Thực hiện nó:
$./hello
Ở đây ./
có nghĩa là tệp exe nằm dưới thư mục hiện tại.
vi
, nhưng nó không quan trọng. Bạn nên đi xa khỏi việc đề xuất một biên tập viên cụ thể, mọi người đều sử dụng riêng của họ.
g++
là một giao diện người dùng gcc
(Bộ sưu tập trình biên dịch GNU) với một số macro c ++ được xác định trước và các tùy chọn / cờ mặc định khác nhau.
biên dịch mã c ++ với gcc
tiện dụng khi g++
không có sẵn vì bất kỳ lý do nào, thực tế đó chỉ là vấn đề liên kết với thư viện c ++ -lstdc++
và thông báo cho gcc để coi đầu vào là mã c ++ (bằng cách sử dụng .C
tiện ích mở rộng hoặc buộc ngôn ngữ -x
)
hậu tố tên file c ++ có giá trị khác: .cc
, .cp
, .cxx
, .cpp
, .CPP
,.c++
thí dụ :
gcc cpp_code.C -lstdc++
phần mở rộng chữ hoa ( .C
) rất quan trọng để gcc biết đó là tệp c ++.
hoặc chỉ định rõ ràng ngôn ngữ nhập liệu:
gcc -x c++ cpp_code.txt -lstdc++
tiện ích mở rộng có thể là bất cứ điều gì, hoặc thậm chí không có gì
theo mặc định, kết quả (sau khi biên dịch thành công) là một a.out
tệp có thể được chạy với./a.out