กระบวนการคอมไพล์เป็นส่วนสำคัญของโปรเจกต์เขียนโค้ด C++ คุณต้องการคอมไพเลอร์ที่มีประสิทธิภาพ เรียบง่าย และมีฟังก์ชันหลากหลาย G++ compiler ตอบโจทย์ตรงจุดนี้ มีฟังก์ชันหลากหลายสำหรับความต้องการการคอมไพล์ โดยตรงจากบรรทัดคำสั่ง บทความนี้จะแนะนำการเริ่มต้นใช้งานเครื่องมือยอดเยี่ยมนี้
G++ คืออะไร?
G++ อธิบายได้ดีที่สุดว่าเป็นคอมไพเลอร์ C++ ที่รันจากบรรทัดคำสั่ง ถูกเผยแพร่โดย Free Software Foundation และเป็นส่วนหนึ่งของ GCC (GNU Compiler Collection) มันเปลี่ยนโค้ดที่เขียนด้วยภาษาโปรแกรมระดับสูง (ในที่นี้คือ C++) ให้กลายเป็นไฟล์ executable โดยแปลงเป็นภาษาระดับต่ำที่คอมพิวเตอร์เข้าใจ
การติดตั้ง
การติดตั้ง Linux ส่วนใหญ่มาพร้อม G++ ตั้งแต่แรก แต่ถ้ายังไม่มี สามารถติดตั้งได้ดังนี้:
Ubuntu/Debian (apt):
sudo apt update && sudo apt install g++
Fedora/CentOS (yum):
sudo yum install g++
ดาวน์โหลดเป็นแพ็กเกจจาก pkgs.org โดยใช้ Curl:
sudo curl https://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/g++_10.2.1-1_amd64.deb -O
ติดตั้งแพ็กเกจด้วย dpkg:
sudo dpkg -i g++.deb
ตรวจสอบว่าติดตั้งแล้วด้วยแฟล็ก --version:
g++ --version
การใช้งานพื้นฐาน
ตอนนี้ G++ พร้อมใช้งาน เริ่มด้วยการดู manual ด้วยแฟล็ก --help:
g++ --help
บางครั้งต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับคอมไพเลอร์และการตั้งค่า แสดง built-in spec strings ด้วยแฟล็ก --dumpspecs:
g++ --dumpspecs
คอมไพล์พื้นฐานด้วย G++ ใช้รูปแบบ:
g++ [file]
ตัวอย่างไฟล์ชื่อ main.cpp คอมไพล์ด้วย:
g++ main.cpp
ไฟล์ executable ที่คอมไพล์ได้จะชื่อ a.out โดยค่าเริ่มต้น
รันด้วย:
./a.out
หากต้องการระบุชื่อไฟล์ executable เอง ใช้แฟล็ก -o:
g++ -o [name] [file to compile]
ตัวอย่าง ตั้งชื่อ executable ว่า main:
g++ -o main main.cpp
หากต้องการลิงก์ object files เข้าด้วยกัน:
g++ -o [compiled file] [obj1.o] [obj2.o]
ตัวอย่าง คอมไพล์ object-1.o และ object-2.o เป็น main:
g++ -o main object-1.o object-2.o
ระบุ root directory สำหรับ libraries และ headers ด้วยแฟล็ก --sysroot:
g++ -o [name] --sysroot [directory] main.ccp
การใช้ -Wall แสดงข้อคำเตือน
บางครั้งต้องการให้คอมไพเลอร์แสดงข้อคำเตือนทั้งหมด G++ มีฟังก์ชันนี้ในตัว:
g++ -o main main.cpp -Wall
การสร้าง Static Library
การสร้าง library เป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์ ด้วยคำสั่ง ar สามารถคอมไพล์ library ได้ง่ายด้วย G++
เริ่มต้นด้วยการคอมไพล์ object file:
g++ -o obj.o main.cpp
ใช้ ar utility พร้อม rcs เพื่อสร้าง archive (.a) file:
ar rcs archive.a obj.o
สุดท้าย ใช้กับ G++:
g++ -o final example.cpp archive.a
คำถามที่พบบ่อย
1. สามารถใช้คอมไพล์ไฟล์ .c ได้ไหม?
ทางเทคนิคทำได้ แต่ utility gcc เหมาะสมกว่า เพราะ G++ ออกแบบมาเป็น C++ compiler โดยเฉพาะ นอกจากนี้ G++ จะจัดการไฟล์ .c ว่าเป็นไฟล์ C++ อยู่ดี หากต้องการใช้ G++ คอมไพล์ .c ใช้แฟล็ก -c:
g++ -c [example.c] -o example
2. ทำไมไม่ใช้ GCC เป็น C++ compiler เลย?
ใช้ GCC เป็น C++ compiler ได้ แต่ G++ เป็นการปรับเปลี่ยนของ GCC ที่โฟกัสที่ C++ มากกว่า จึงมีฟังก์ชันและฟีเจอร์เพิ่มเติมสำหรับโปรแกรมเมอร์ C++
3. เวอร์ชันล่าสุดคืออะไร?
เวอร์ชันล่าสุดของ G++ คือ 11.2.0 ณ Q1 2022 เปิดตัวเดือนกรกฎาคม 2021