ฉันยังใหม่กับ 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