ฉันยังใหม่กับ Linux ฉันใช้ Ubuntu 11.04 และไม่ทราบวิธีการคอมไพล์และรันโปรแกรม C ++ ฉันจำเป็นต้องทราบคำสั่งในการรวบรวมและดำเนินการโปรแกรม C ++ ได้ในลินุกซ์
ฉันยังใหม่กับ Linux ฉันใช้ Ubuntu 11.04 และไม่ทราบวิธีการคอมไพล์และรันโปรแกรม C ++ ฉันจำเป็นต้องทราบคำสั่งในการรวบรวมและดำเนินการโปรแกรม C ++ ได้ในลินุกซ์
คำตอบ:
ในการรวบรวมรหัส c ++ ของคุณให้ใช้:
g++ foo.cpp
foo.cppในตัวอย่างคือชื่อของโปรแกรมที่จะรวบรวม
สิ่งนี้จะสร้างไฟล์ปฏิบัติการในไดเรกทอรีเดียวกันa.out
ซึ่งคุณสามารถเรียกใช้ได้โดยพิมพ์ข้อความนี้ในเทอร์มินัลของคุณ:
./a.out
g ++ควรเป็น $ PATH ของคุณอยู่แล้วดังนั้นคุณไม่จำเป็นต้องโทร/usr/bin/g++
อย่างชัดเจน แต่คุณสามารถใช้ตัวหลังในทุกกรณี
foo.cpp
ควรอยู่ในไดเรกทอรีเดียวกับที่คุณใช้งานคำสั่ง หากมีข้อสงสัยใด ๆ คุณสามารถตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเรกทอรีเดียวกันโดยการพิมพ์ls foo.cpp
หรือhead foo.cpp
(หากคุณต้องการตรวจสอบว่าคุณทำงานถูกต้องfoo
หรือไม่)
เท่าที่สังเกตจาก @ Con-F-ใช้คอมไพเลอร์มักจะทำให้ปฏิบัติการไฟล์นี้ แต่ถ้าไม่คุณสามารถทำเองนี้ (ดังนั้นคำสั่งที่จะดำเนินการ./a.out
หรือเทียบเท่าจะทำงาน):
chmod +x ./a.out
หากต้องการระบุชื่อของไฟล์เอาต์พุตที่คอมไพล์แล้วเพื่อที่จะไม่มีชื่อa.out
ให้ใช้-o
กับคำสั่ง g ++ ของคุณ
เช่น
g++ -o output foo.cpp
จะเป็นการคอมไพล์foo.cpp
ไฟล์ไบนารี่ที่มีชื่อoutput
และคุณสามารถพิมพ์./output
เพื่อรันโค้ดที่คอมไพล์ได้
a.out
ในกรณีนี้) ปฏิบัติการ chmod +x a.out
ถ้าไม่ได้คุณสามารถทำได้โดยการพิมพ์: เมื่อโปรแกรมที่คอมไพล์ของคุณสามารถเรียกใช้งานได้คุณสามารถรันมันพิมพ์./a.out
- จุดและตัวบ่งชี้สแลชที่คุณต้องการรัน
ฉันตั้งสมมติฐานไว้สองข้อที่นี่:
วิธีที่ง่ายที่สุดในการรวบรวมโปรแกรม C ++ บน Ubuntu หรือ Linux distro อื่น ๆ สำหรับเรื่องนั้นคือการพิมพ์
g++ main.cpp -o main
g++ -o main main.cpp
ใช้ได้อย่างเท่าเทียมกันคำสั่งข้างต้นถือว่าคุณอยู่ในตำแหน่งของไฟล์ต้นฉบับอยู่แล้ว แต่อาจจะระบุทั้งไฟล์ต้นฉบับและไฟล์เอาต์พุตเป้าหมายเป็นไดเร็กทอรี ตัวอย่างเช่น
g++ ~/Desktop/main.cpp -o ~/Projects/main
จะรวบรวมไฟล์ต้นฉบับ C ++ ที่อยู่บนเดสก์ท็อปของคุณและวางไบนารีที่เรียกใช้งานได้ในProjects
โฟลเดอร์ในโฮมไดเร็กตอรี่ของคุณ ./Projects/main
การเรียกใช้ปฏิบัติการนี้เรียกใช้
นี่คือวิธีที่ฉันชอบรวบรวมกับ 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.
คุณต้องการ g ++ สำหรับ gcc อาจไม่รวบรวมไฟล์ cpp ได้อย่างง่ายดาย
คุณต้องเรียนรู้เป็นกลุ่มหรือ emacs เพื่อเขียนรหัส C
ลองใช้สิ่งนี้ในเทอร์มินัลของคุณ:
พิมพ์โปรแกรมทดสอบและบันทึก:
$vim hello.cc
คอมไพล์hello.cc
ด้วย g ++:
$g++ hello.cc -o hello
ดำเนินการ:
$./hello
นี่./
หมายความว่าไฟล์ exe อยู่ภายใต้ dir ปัจจุบัน
vi
แต่มันไม่สำคัญ คุณควรหลงทางจากการแนะนำบรรณาธิการที่เฉพาะเจาะจงทุกคนใช้ของเขา / เธอเองอยู่แล้ว
g++
เป็น front-end to gcc
(GNU คอมไพเลอร์คอลเลคชั่น) ที่มีมาโคร c ++ ที่กำหนดไว้ล่วงหน้าและตัวเลือก / แฟล็กเริ่มต้นที่แตกต่างกัน
การคอมไพล์รหัส c ++ ด้วยgcc
สะดวกเมื่อg++
ไม่พร้อมใช้งานด้วยเหตุผลหลายประการอันที่จริงมันเป็นเรื่องของการเชื่อมโยงไปยังไลบรารี c ++ -lstdc++
และแจ้งให้ gcc เพื่อปฏิบัติต่อการป้อนข้อมูลเป็นรหัส c ++ (โดยใช้.C
ส่วนขยายหรือบังคับภาษาด้วย-x
)
อื่น ๆ ที่ถูกต้องต่อท้ายชื่อไฟล์ C ++: .cc
, .cp
, .cxx
, .cpp
, .CPP
,.c++
ตัวอย่าง:
gcc cpp_code.C -lstdc++
ส่วนขยายตัวพิมพ์ใหญ่ ( .C
) เป็นสิ่งสำคัญที่ gcc จะรู้ว่าเป็นไฟล์ c ++
หรือระบุภาษาที่ป้อนอย่างชัดเจน:
gcc -x c++ cpp_code.txt -lstdc++
ส่วนขยายสามารถเป็นอะไรก็ได้หรือแม้แต่ไม่มีอะไร
โดยค่าเริ่มต้นผลลัพธ์ (หลังจากการคอมไพล์สำเร็จ) เป็นa.out
ไฟล์ที่สามารถรันได้./a.out