# คู่มือ IDE แอนจูตา

v1.0.0

คู่มือสำหรับ IDE แอนจูตา

Naba
Kumar
Andy
Piper
Biswapesh
Chattopadhyayr
Johannes
Schmid
2001-2002
2006-2008
Naba Kumar, Andy Piper, Biswapesh Chattopadhyay
Johannes Schmid
2008, 2009
Akom C. (knight2000@gmail.com)
2009
Theppitak Karoonboonyanan (thep@linux.thai.net)

อนุญาตให้ทำซ้ำ เผยแพร่ และ/หรือ ดัดแปลงเอกสารนี้ได้ ภายใต้เงื่อนไขของ GNU Free Documentation License รุ่น 1.1 หรือรุ่นถัดมารุ่นใด ๆ ที่เผยแพร่โดยมูลนิธิซอฟต์แวร์เสรี (Free Software Foundation) โดยไม่มี "หัวข้อห้ามเปลี่ยน" (Invariant Sections), ไม่มี "ข้อความปกหน้า" (Front-Cover Texts) และไม่มี "ข้อความปกหลัง" (Back-Cover Texts) คุณอาจรับสำเนาของ GNU Free Documentation License จากมูลนิธิซอฟต์แวร์เสรีได้ที่ เว็บไซต์ของมูลนิธิ หรือโดยเขียนไปที่: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

มีชื่อหลายชื่อที่บริษัทต่าง ๆ ใช้แยกความแตกต่างของผลิตภัณฑ์และบริการของตนจากบริษัทอื่น และอ้างเป็นเครื่องหมายการค้า ที่ใดก็ตามที่ชื่อเหล่านั้นปรากฏในเอกสารของ GNOME และสมาชิกโครงการเอกสาร GNOME ได้รับทราบเกี่ยวกับเครื่องหมายการค้าเหล่านั้น ชื่อเหล่านั้นจะเขียนด้วยตัวพิมพ์ใหญ่ หรือขึ้นต้นด้วยตัวพิมพ์ใหญ่

คู่มือแอนจูตา 2.1.0
2007

Johannes Schmidjhs@gnome.org

ทีมแอนจูตา

## เกริ่นนำ

แอนจูตา เป็นชุดเครื่องมือพัฒนาเบ็ดเสร็จ (IDE) ที่มีความสามารถครบครันสำหรับเดสก์ท็อป GNOME มีเครื่องมือระดับสูงมากมายสำหรับการเขียนโปรแกรม ไม่ว่าจะเป็นการบริหารจัดการโครงการ เครื่องมือวิเศษสร้างโปรแกรม เครื่องมือดีบั๊กแบบโต้ตอบ การเชื่อมรวมกับเครื่องมือออกแบบส่วนติดต่อผู้ใช้สำหรับ Glade เชื่อมรวมกับคู่มือ API Devhelp เชื่อมรวมกับเครื่องมือตรวจสอบการใช้หน่วยความจำ Valgrind เชื่อมรวมกับเครื่องมือวัดประสิทธิภาพ gprof มีเครื่องมือสร้างคลาส เครื่องมือแก้ไขซอร์สที่เก่งกาจ เครื่องมือช่วยไล่ดูซอร์ส และอื่น ๆ

Anjuta DevStudio ออกแบบมาเพื่อให้ง่ายต่อการใช้งาน แต่ยังทรงพลังมากพอที่จะตอบสนองทุกความต้องการของคุณในการเขียนโปรแกรม เราได้เพิ่มความสามารถใหม่ ๆ มากมายในแอนจูตาตลอดการพัฒนา เราให้ความสำคัญกับการเพิ่มขีดความสามารถและความสะดวกใช้ในเวลาเดียวกัน รวมทั้งการทำให้การพัฒนาซอฟต์แวร์ของคุณสนุกสนานโดยไม่เพิ่มภาระต่อการเรียนรู้จนเกินไป เราจะมุ่งปรับปรุงและสร้างเสถียรภาพให้กับแอนจูตาต่อไป เพื่อให้คุณได้รับความรู้สึกที่ดีกับ IDE เท่าที่จะทำได้ เราหวังว่าคุณจะมีความสุขกับการใช้แอนจูตา หากพบปัญหา กรุณาช่วยเราปรับปรุง ด้วยการรายงานบั๊กและให้คำแนะนำ

ภาพหน้าจอต่อไปนี้แสดงบางส่วนของสิ่งที่คุณจะพบในแอนจูตา

### แอนจูตาขณะใช้งาน

แอนจูตาขณะใช้งาน

แอนจูตามีระบบ dock ที่ยืดหยุ่นและมากความสามารถ ที่ช่วยให้คุณสามารถจัดวางสิ่งต่าง ๆ ในหน้าต่างได้ในแบบที่คุณต้องการ คุณสามารถลากวางช่องแสดงต่าง ๆ ได้โดยใช้แถบลากเพื่อจัดเรียงใหม่ การจัดเรียงจะคงอยู่สำหรับแต่ละโครงการ ทำให้คุณสามารถใช้การจัดเรียงแบบต่าง ๆ ไปตามแต่ละโครงการได้ ช่องแสดงที่ dock ไว้ทั้งหมดสามารถย่อเก็บได้ เพื่อลดความเบียดเสียดในหน้าต่างหลัก ช่องแสดงที่ถูกย่อเก็บจะปรากฏเป็นไอคอนที่ด้านซ้ายของหน้าต่างหลัก คุณสามารถตั้งค่าปุ่มลัดของเมนูทั้งหมดได้ ด้วยการพิมพ์ขณะที่เคอร์เซอร์เลือกที่เมนูอยู่ (ตามวิธีปกติของ GNOME) หรือจะทำผ่านส่วนตั้งค่าปุ่มลัดโดยเฉพาะก็ได้

กรุณารายงานปัญหาใด ๆ ก็ตามที่คุณพบใน แอนจูตา - การรายงานนี้เป็นการช่วยปรับปรุงตัวซอฟต์แวร์เอง และเป็นการช่วยชุมชนโอเพนซอร์สด้วย

## ทำความรู้จักกับแอนจูตา

### เมนูและปุ่มลัด

ที่ด้านบนสุดของหน้าต่างหลัก แอนจูตา จะเป็นแถบเมนู คุณสามารถสั่งงานแอนจูตาได้เกือบทั้งหมดที่รายการเมนูนี้ คำสั่งต่าง ๆ จะจัดเป็นกลุ่มตามประเภท ตัวอย่างเช่น คำสั่งเกี่ยวกับแฟ้มจะจัดรวมอยู่ในเมนู แฟ้ม

#### แถบเมนู

แถบเมนูของแอนจูตา

#### เมนูแฟ้ม

เมนูแฟ้ม

รายการเมนูหลายรายการจะมีปุ่มลัด โดยปุ่มลัดจะแสดงอยู่ข้าง ๆ กับรายการเมนูนั้น ๆ ปุ่มลัดอื่น ๆ ที่เป็นประโยชน์ เช่น

- สลับหน้าเครื่องมือแก้ไข: Ctrl Alt Page Up (ไปข้างหน้า) และ Ctrl Alt Page Down (ถอยหลัง) นอกจากนี้ คุณยังสามารถสลับหน้าได้โดยคลิกขวาที่แท็บสมุด แล้วเลือกชื่อแฟ้มจากเมนูแบบผุดขึ้น (เป็นประโยชน์ในกรณีที่ไม่สามารถมองเห็นแท็บในเครื่องมือแก้ไขได้พร้อมกันทั้งหมด) เดสก์ท็อปบางชุดอาจมีการกำหนดหน้าที่ปุ่มลัดเหล่านี้ไว้ ในกรณีเช่นนั้น คุณจะต้องตั้งค่าใหม่ (ไม่ใช่ที่แอนจูตา เพราะปุ่มลัดถูกกำหนดไว้ตายตัว) ถ้าคุณต้องการใช้ปุ่มลัดเหล่านี้

- วิธีใช้ตามบริบท:Shift F1 วางเคอร์เซอร์ที่คำ (เช่น ที่ชื่อฟังก์ชัน) ที่คุณต้องการขอดูวิธีใช้ API แล้วกดปุ่มลัดนี้ วิธีใช้ตามบริบทนี้จะทำงานได้ก็ต่อเมื่อคุณติดตั้ง DevHelp ไว้แล้วเท่านั้น มิฉะนั้น เมนูและปุ่มแถบเครื่องมือวิธีใช้ตามบริบทจะไม่ทำงาน คุณสามารถหา Devhelp ได้จากเว็บไซต์ของ DevHelp และคุณจะต้องติดตั้งข้อมูลหนังสือ DevHelp ที่เกี่ยวข้องด้วย

- เติมเต็มคำอัตโนมัติ:Ctrl Enter กดปุ่มลัดนี้ขณะที่เคอร์เซอร์อยู่ที่ท้ายคำที่ไม่สมบูรณ์ จะปรากฏรายการของคำที่ตรงพร้อมส่วนที่เหลือให้ จากนั้นก็เลื่อนและเลือกคำที่เหมาะสมจากรายการคำได้

- ปุ่มลัดเพิ่มเติม: มองหาปุ่มลัดที่แสดงที่ด้านขวาของป้ายชื่อรายการเมนู ปุ่มลัดเหล่านี้ยังสามารถเปลี่ยนแปลงได้ ดังคำอธิบายในเกร็ดด้านล่าง

#### กำหนดปุ่มลัดเอง

คุณสามารถเปลี่ยนปุ่มลัดปริยายได้ โดยเลือก แก้ไข ปรับแต่ง แล้วเลือกแท็บ ปุ่มลัด

### หน้าต่างหลัก

ในหน้าต่างหลักจะมีหน้าต่างแสดงหลายช่อง ซึ่งสามารถจัดวางใหม่ได้ด้วยการลากที่แถบชื่อ หน้าต่างแสดงเหล่านี้สามารถย่อเก็บได้โดยการคลิกที่ปุ่มย่อเก็บที่ด้านซ้ายของแถบชื่อ

1. หน้าต่างเอกสาร จะมีเอกสารที่ทำงานอยู่เพียงคราวละเอกสาร (ถ้ามีแฟ้มเปิดอยู่) ทุกคำสั่งที่เกี่ยวกับแฟ้มจะกระทำกับเอกสารที่ทำงานอยู่นี้ คุณสามารถสลับไปยังเอกสารใด ๆ ได้โดยคลิกที่แท็บของเอกสารนั้น หรือจะใช้วิธีคลิกขวาบนแท็บแบ่งหน้า แล้วเลือกเอกสารจากเมนูแบบผุดขึ้นจะแสดงให้เห็นก็ได้ วิธีนี้จะเป็นประโยชน์ในกรณีที่คุณมีแฟ้มเปิดอยู่เป็นจำนวนมาก แต่ไม่สามารถเห็นได้ทั้งหมดในพื้นที่แท็บ

2. หน้าต่างโครงการ จะแสดงแผนภาพต้นไม้ของแฟ้มต่าง ๆ ในโครงการถ้าคุณเปิดโครงการอยู่ ถ้าไม่มีโครงการเปิดอยู่ หน้าต่างโครงการ ก็มักจะถูกซ่อนไว้ การดับเบิลคลิกที่รายการใด ๆ ใน หน้าต่างโครงการ จะเป็นการเปิดแฟ้มนั้น ๆ

3. หน้าต่างแฟ้ม แสดงแผนภาพต้นไม้ของแฟ้ม ถ้าไม่มีโครงการเปิดอยู่ แผนภาพต้นไม้ของแฟ้มโดยปกติก็จะชี้ไปที่รากของระบบแฟ้ม แต่คุณก็สามารถเปลี่ยนพฤติกรรมนี้ได้ในค่าปรับแต่ง ถ้ามีโครงการเปิดอยู่ หน้าต่างนี้ก็จะแสดงแฟ้มทั้งหมดที่อยู่ในโครงการ การดับเบิลคลิกจะเปิดแฟ้มด้วยโปรแกรมตามที่กำหนดไว้ในค่าปรับแต่ง MIME ของ GNOME การคลิกขวาจะผุดเมนูให้คุณเลือกวิธีเปิดแฟ้ม

4. หน้าต่างสัญลักษณ์ จะแสดงแผนภาพต้นไม้ของสัญลักษณ์ที่มีอยู่ในโครงการตามที่สร้างจากตัวแจง ctags การดับเบิลคลิกจะเปิดแฟ้มที่บรรทัดที่มีสัญลักษณ์นั้น ๆ ในหน้าต่างเครื่องมือแก้ไข

   และยังมี แท็บค้นหา ในหน้าต่างสัญลักษณ์ ซึ่งคุณสามารถใช้ค้นหาสัญลักษณ์ต่าง ๆ ได้

5. หน้าต่างข้อความ จะแสดงข้อความทั้งหมด (ทั้งจาก `stdout` และ `stderr`) เมื่อมีการเรียกคำสั่งภายนอก โดยปกติแล้ว หน้าต่างข้อความ จะถูกซ่อนไว้ แต่จะปรากฏทันทีที่มีการเรียกคำสั่งภายนอก เช่น ขณะคอมไพล์แฟ้มหรือโครงการ ขณะดีบั๊ก ค้นหา และการกระทำอื่น ๆ อีกหลายอย่าง นอกจากนี้ แอนจูตา ยังเพิ่มข้อความเองที่นี่ด้วยเมื่อจำเป็น

   สีที่ใช้แสดงข้อความมีความสำคัญ ข้อความที่แสดงด้วยสีข้อความมาตรฐาน (โดยปกติเป็นสีดำ) เป็นข้อความปกติ ข้อความที่แสดงด้วยสีส้มเป็นคำเตือน และที่เป็นสีแดงคือข้อผิดพลาด คำเตือนและข้อผิดพลาดจะเป็น ลิงก์ เมื่อดับเบิลคลิกที่ข้อความดังกล่าว จะนำคุณไปยังแฟ้มและบรรทัดที่ระบุในข้อความ

   ตัวอย่างเช่น เมื่อคุณคอมไพล์แฟ้มที่มีข้อผิดพลาด จะมีข้อความสีแดงแจ้งปัญหาพร้อมระบุตำแหน่งที่เกิด การดับเบิลคลิกที่ข้อความดังกล่าวจะเปิดแฟ้มนั้นพร้อมทั้งเน้นบรรทัดที่มีข้อผิดพลาด

6. หน้าต่างเทอร์มินัล เป็นเทอร์มินัลจำลอง ซึ่งคุณสามารถพิมพ์คำสั่งได้เหมือนกับในโปรแกรมเทอร์มินัล GNOME

#### การจัดการวาระ

การตั้งค่าทั้งหมด รวมทั้งขนาดและตำแหน่งของหน้าต่าง จะถูกบันทึกไว้เมื่อคุณออกจาก แอนจูตา แต่การจัดการวาระยังอยู่ระหว่างการพัฒนา ดังนั้น คุณจึงไม่ควรออกจาก แอนจูตา โดยมีเอกสารที่ยังไม่บันทึกตกค้าง แอนจูตา จะแสดงคำเตือนถ้าคุณพยายามออกโดยมีเอกสารที่ยังไม่บันทึกเปิดอยู่

## การกระทำกับแฟ้ม

### การสร้างแฟ้มใหม่และการแทรกข้อความ

#### การสร้างแฟ้มใหม่

การสร้างแฟ้มใหม่ ทำได้โดยเลือก แฟ้ม ใหม่ จากแถบเมนู หรือคลิกที่ปุ่ม แฟ้มใหม่ บนแถบเครื่องมือหลัก จะปรากฏหน้าใหม่ในเครื่องมือแก้ไข (หรือเปิดหน้าต่างใหม่ ถ้าเอกสารแม่อยู่ในหน้าต่าง) เอกสารใหม่จะมีชื่อเป็น `newfile#1`, `newfile#2`, `newfile#3` ไปเรื่อย ๆ

##### บันทึกแฟ้ม

คุณควรบันทึกเอกสารใหม่ทันทีที่เป็นไปได้ เพื่อหลีกเลี่ยงการสูญหายของข้อมูลในกรณีที่โปรแกรมพัง

#### เครื่องมือช่วยสร้างแฟ้ม

เครื่องมือช่วยสามารถใช้สร้างแฟ้มใหม่ได้ การสร้างแฟ้มใหม่ ทำได้โดยเลือก แฟ้ม ใหม่แฟ้ม จากแถบเมนู จะเป็นการเปิดกล่องโต้ตอบ "แฟ้มใหม่" จากนั้น เลือกชนิดของแฟ้ม และป้อนชื่อแฟ้ม นามสกุลของแฟ้มจะถูกเพิ่มให้โดยอัตโนมัติ คุณสามารถเพิ่มข้อมูลสัญญาอนุญาต (ตามสัญญาอนุญาตที่คุณเลือก) และแฟ้มส่วนหัว ในกรณีที่เป็นแฟ้มส่วนหัวของ C/C++ คุณสามารถเพิ่มแม่แบบสำหรับแฟ้มส่วนหัวได้ด้วย เสร็จแล้วคลิก ตกลง เพื่อตรวจสอบการสร้าง

##### เครื่องมือช่วยสร้างแฟ้มใหม่

กล่องโต้ตอบเปิดแฟ้ม

ในบางโอกาส แอนจูตา ยังมีการเปิดหน้าต่างแฟ้มใหม่ในระหว่างปฏิบัติการบางอย่าง ตัวอย่างเช่น ปฏิบัติการบางอย่างของ Subversion เช่น `Diff` และ `ดูปูม` จะเปิดหน้าต่างแฟ้มใหม่และเขียนผลลัพธ์ลงที่นั่น คุณสามารถบันทึกเนื้อหาของหน้าต่างเหล่านี้ลงในแฟ้มจริงได้ถ้าต้องการ

#### การแทรกแมโคร

คุณสามารถใช้ แมโคร ในการแก้ไขข้อความชุดซ้ำ ๆ ได้อย่างรวดเร็ว

ปลั๊กอินแมโครจะต้องทำงานก่อน

##### การแทรก

แมโครมี 2 ชนิด: แมโครของแอนจูตาและแมโครของผู้ใช้ (แสดงเป็น "แมโครของฉัน") แมโครของแอนจูตาไม่สามารถแก้ไขได้ แต่คุณสามารถกำหนดและปรับเปลี่ยนแมโครผู้ใช้ของคุณเองได้

การแทรกแมโคร ทำได้โดยเลื่อนเคอร์เซอร์ไปยังตำแหน่งที่ต้องการ เลือก แก้ไข แมโคร แมโคร... จะปรากฏกล่องโต้ตอบ เลือกแมโครที่ต้องการในรายชื่อ ผลของการแทนที่แมโครที่เลือกจะแสดงในหน้าต่าง พร้อมกับข้อมูลสรุปเกี่ยวกับแมโคร จากนั้นคลิก แทรก ข้อความแทนที่ของแมโครจะถูกแทรกลงที่ตำแหน่งของเคอร์เซอร์

อีกวิธีหนึ่งที่จะแทรกแมโครคือเลือก แก้ไข แมโคร แทรกแมโคร... แล้วกดปุ่มลัดของแมโครที่ต้องการ

###### แมโคร

กล่องโต้ตอบแมโคร

##### การนิยามแมโคร

คลิก เพิ่ม จากหน้าต่างแทรกแมโคร หรือเลือกเมนู แก้ไข แมโคร เพิ่มแมโคร... จะปรากฏหน้าต่าง เพิ่ม/แก้ไข จากนั้นก็ป้อนชื่อแมโคร เลือกหรือกำหนดประเภท แล้วป้อนปุ่มลัด จากนั้น แก้ไขข้อความสำหรับแมโครของคุณ โดยอักขระ ' | ' จะแสดงตำแหน่งเคอร์เซอร์หลังจากการแทรกแมโคร เสร็จแล้ว คลิก ตกลง แมโครจะถูกเพิ่มเข้าไปในรายชื่อ

คุณสามารถลบแมโครได้ โดยเลือกแมโครในรายชื่อ แล้วคลิก เอาออก แน่นอนว่าการลบนี้ใช้ได้เฉพาะกับแมโครผู้ใช้ (แมโครของฉัน) เท่านั้น

ในทำนองเดียวกัน คุณสามารถแก้ไขและปรับเปลี่ยนแมโครได้ โดยเลือกในรายชื่อ แล้วคลิก แก้ไข

###### เพิ่ม/แก้ไขแมโคร

กล่องโต้ตอบ เพิ่ม/แก้ไข

##### คำหลักสำหรับแมโคร

มีคำหลักจำนวนหนึ่งสำหรับแมโคร ซึ่งสามารถใช้ในนิยามแมโครได้ คำหลักสำหรับแมโครเหล่านี้ จะเริ่มต้นและลงท้ายด้วยอักขระ '@'

คำหลักสำหรับแมโครที่มีให้คือ : @DATE_TIME@, @DATE_YMD@, @DATE_Y@, @USER_NAME@, @FILE_NAME@, @FILE_NAME_UP@, @FILE_NAME_UP_PREFIX@, @EMAIL@, @TABSIZE@, @INDENTSIZE@, @USETABS@

###### แมโครที่ใช้คำหลัก

แมโครที่ใช้คำหลัก

### การเปิดและบันทึกแฟ้ม

1. การเปิดแฟ้ม: การเปิดแฟ้มที่มีอยู่ก่อนแล้ว ทำได้โดยเลือก แฟ้ม เปิด จากแถบเมนู หรือคลิกที่ปุ่ม เปิด บนแถบเครื่องมือ หรือกด Ctrl O ก็ได้ จะปรากฏกล่องโต้ตอบ เปิดแฟ้ม

   #### กล่องโต้ตอบเปิดแฟ้ม

   กล่องโต้ตอบเปิดแฟ้ม จากนั้น เลือกหรือป้อนชื่อแฟ้มที่คุณต้องการเปิด แล้วคลิก เปิด การเปิดแฟ้มมากกว่าหนึ่งแฟ้มพร้อมกัน ก็ทำได้โดยเลือกแฟ้มต่าง ๆ ที่จะเปิดโดยกด Ctrl ค้างไว้ แล้วคลิกแฟ้มเพิ่มทีละแฟ้ม เสร็จแล้วกดปุ่ม เปิด ถ้าคุณเปลี่ยนใจ ก็คลิก ยกเลิก เพื่อปิดกล่องโต้ตอบโดยไม่มีการเปิดแฟ้ม

   #### กล่องโต้ตอบเปิดหลายแฟ้ม

   กล่องโต้ตอบแฟ้มในโหมดเลือกหลายรายการ

   คุณสามารถเปิดใช้งานตัวเลือก แสดงแฟ้มซ่อน ผ่านเมนูแบบผุดขึ้นที่ปรากฏเมื่อคุณคลิกขวาในกล่องโต้ตอบเปิดแฟ้ม ตัวเลือกนี้จะทำให้แฟ้มที่ซ่อนอยู่ (แฟ้มที่ขึ้นต้นด้วย ".") ปรากฏในรายชื่อแฟ้ม หากต้องการซ่อนแฟ้มซ่อนก็เลิกกาตัวเลือกนี้ นอกจากนี้ กล่องโต้ตอบเปิดแฟ้มยังมีตัวกรองชนิดของแฟ้มในตัว เมื่อคุณเลือกตัวกรองชนิดแฟ้มที่เหมาะสมในกล่องโต้ตอบ รายชื่อแฟ้มจะแสดงเฉพาะแฟ้มชนิดที่เลือกเท่านั้น

2. การบันทึกแฟ้ม: วิธีบันทึกแฟ้ม ทำได้โดยเลือก แฟ้ม บันทึก จากแถบเมนู หรือคลิกปุ่ม บันทึก บนแถบเครื่องมือ หรือกด Ctrl S ก็ได้ จะเป็นการบันทึกแฟ้ม ถ้าเป็นแฟ้มใหม่ จะปรากฏกล่องโต้ตอบ บันทึกแฟ้มเป็น ให้คุณป้อนชื่อแฟ้มแล้วคลิก บันทึก เพื่อบันทึกแฟ้มใหม่ด้วยชื่อที่กำหนด การบันทึกเป็นแฟ้ม

   #### การบันทึกแฟ้มอัตโนมัติ

   ถ้าคุณเปิดใช้งานการบันทึกอัตโนมัติ แอนจูตาจะยังไม่บันทึกแฟ้มใหม่ใด ๆ โดยอัตโนมัติ คุณต้องสั่งบันทึกเองก่อน กับตัวเลือก บันทึกทั้งหมด ก็เช่นกัน: แอนจูตาจะไม่บันทึกแฟ้มที่สร้างใหม่ ถ้าคุณยังไม่ได้สั่งบันทึกแฟ้มเหล่านั้นเองก่อน คุณจะต้องสั่งบันทึกแฟ้มเองก่อน การบันทึกอัตโนมัติหรือ บันทึกทั้งหมด จึงจะเริ่มทำงานกับแฟ้มเหล่านั้น

3. การบันทึกแฟ้มด้วยชื่อใหม่: คุณสามารถเจาะจงบันทึกแฟ้มโดยกำหนดชื่อใหม่ได้ โดยเลือก แฟ้ม บันทึกเป็น จากแถบเมนู จะปรากฏกล่องโต้ตอบ บันทึกแฟ้มเป็น ขึ้นมาให้คุณป้อนชื่อแฟ้มใหม่ คุณก็ป้อนชื่อแฟ้มแล้วคลิก บันทึก

   #### การบันทึกแฟ้มโดยเขียนทับ

   เมื่อคุณใช้ บันทึกเป็น กับแฟ้มที่มีอยู่แล้ว แฟ้มต้นฉบับจะไม่ถูกลบ โดยจะไม่มีการเปลี่ยนแปลงจากที่บันทึกครั้งสุดท้าย สำหรับแฟ้มที่ตั้งชื่อใหม่นั้น ถ้ามีแฟ้มที่ชื่อซ้ำกันอยู่ก่อนแล้ว จะมีกล่องโต้ตอบยืนยันปรากฏขึ้นมา เพื่อถามให้แน่ใจว่าคุณต้องการเขียนทับแฟ้มดังกล่าว ถ้าคลิก ใช่ ก็จะเขียนทับแฟ้มนั้นด้วยแฟ้มที่คุณกำลังบันทึก

4. การปิดแฟ้ม: วิธีปิดแฟ้ม ทำได้โดยเลือก แฟ้ม ปิด จากแถบเมนู หรือคลิกปุ่ม ปิด บนแถบเครื่องมือ (และคุณยังสามารถปิดแฟ้มโดยการคลิก X ในแท็บชื่อแฟ้มได้ด้วย) การปิดนี้เป็นการปิดแฟ้มปัจจุบัน ถ้าแฟ้มนั้นยังไม่ถูกบันทึก หรือเป็นแฟ้มใหม่ แอนจูตา จะถามคุณเพื่อบันทึกแฟ้มนั้นก่อนปิด

### การแก้ไขแฟ้ม

แอนจูตา มีความสามารถหลายอย่างที่ช่วยคุณแก้ไขและทำงานกับแฟ้มซอร์ส หัวข้อต่อไปนี้ จะอธิบายวิธีใช้ความสามารถบางอย่างที่น่าสนใจ

#### ขอบของเครื่องมือแก้ไข

ขอบของเครื่องมือแก้ไข: ขอบของเครื่องมือแก้ไขจะอยู่ทางด้านซ้ายของเครื่องมือแก้ไข และใช้เพื่อวัตถุประสงค์พิเศษบางอย่าง ขอบเครื่องมือแก้ไขมีสามขอบ คือ ขอบเลขบรรทัด, ขอบเครื่องหมาย และ ขอบพับโค้ด โดยค่าปริยายนั้น (กล่าวคือ เมื่อคุณเรียกทำงาน แอนจูตา ครั้งแรก) จะเห็นเพียงขอบพับโค้ดเท่านั้น ส่วนที่เหลือสามารถสั่งให้แสดงได้ทางเมนู มุมมอง เครื่องมือแก้ไข

##### ขอบของเครื่องมือแก้ไข

แถบเครื่องมือแท็ก

ขอบแสดงเลขบรรทัด จะมีขนาดใหญ่ที่สุดในบรรดาขอบทั้งสาม (และเข้มกว่าขอบอื่น ๆ เล็กน้อย) เป็นขอบสำหรับแสดงเลขบรรทัดของเอกสาร ขอบแสดงเลขบรรทัด สามารถสั่งให้แสดงหรือซ่อนได้ด้วยการสลับค่า มุมมอง เครื่องมือแก้ไข ขอบแสดงเลขบรรทัด การคลิกซ้ายที่ขอบนี้จะเลือกบรรทัดทั้งบรรทัด (รวมถึงอักขระขึ้นบรรทัดใหม่ด้วยถ้ามี) คุณสามารถกำหนดคุณสมบัติแบบอักษรสำหรับขอบแสดงเลขบรรทัดนี้ได้ในกล่องโต้ตอบปรับแต่ง

ขอบเครื่องหมาย สามารถสั่งให้แสดงหรือซ่อนได้ทางเมนู มุมมอง เครื่องมือแก้ไข ขอบเครื่องหมาย ขอบนี้จะแสดงไอคอนกราฟิกเพื่อทำเครื่องหมายให้กับบรรทัดที่กำหนด เครื่องหมายซึ่งจะแสดงในขอบนี้อาจเป็นเครื่องหมายที่คั่นหน้า (สี่เหลี่ยมสีฟ้า) เครื่องหมายจุดพัก (วงกลมสีแดง) และเครื่องหมายกำกับบรรทัด (หัวลูกศรสีเหลือง) เครื่องหมายที่คั่นหน้าใช้สำหรับระบุบรรทัดที่คั่นหน้าไว้ ซึ่งสามารถสลับได้จากเมนู ไปยัง ที่คั่นหน้า สลับที่คั่นหน้า ในขณะที่เคอร์เซอร์วางอยู่ที่บรรทัดนั้น ส่วนเครื่องหมายจุดพักใช้ในเครื่องมือดีบั๊ก เพื่อทำเครื่องหมายจุดพักของการดีบั๊ก (ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อการดีบั๊ก) และเครื่องหมายกำกับบรรทัดใช้ระบุตำแหน่งปัจจุบันของโปรแกรมในเครื่องมือดีบั๊ก

ขอบพับโค้ด คือที่ที่จะแสดงแผนภาพต้นไม้ของการพับโค้ด การคลิกที่โหนดของแผนภาพต้นไม้ของการพับนี้ จะเป็นการพับหรือคลี่บล็อคของโค้ด โดยจะขีดเส้นใต้บรรทัดที่พับ เพื่อให้เห็นชัดเจนมากขึ้นว่าบล็อคของโค้ดถูกพับไว้ใต้บรรทัดนั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการพับโค้ดได้ที่หัวข้อ การพับโค้ด ที่ด้านล่าง

##### เครื่องหมายเมื่อไม่ใช้ขอบ

ถ้าไม่ได้เปิดใช้ขอบเครื่องหมายอยู่ แอนจูตาจะแสดงเครื่องหมายด้วยการเปลี่ยนสีพื้นหลังของบรรทัด ตัวอย่างเช่น ถ้ามีเครื่องหมายจุดพักอยู่ในบรรทัดโดยที่ไม่ได้เปิดใช้ขอบเครื่องหมายอยู่ บรรทัดนั้นก็จะแสดงด้วยพื้นหลังสีแดง ในทำนองเดียวกัน สำหรับเครื่องหมายที่คั่นหน้าและเครื่องหมายกำกับบรรทัด สีพื้นหลังของบรรทัดจะสีฟ้าและสีเหลืองตามลำดับ ถ้าคุณไม่ชอบการแสดงแบบนี้ (อาจเนื่องมาจากชุดตกแต่งที่สีตัดกันเกินไป) คุณก็สามารถเปิดใช้ขอบเครื่องหมายได้จากเมนู มุมมอง เครื่องมือแก้ไข ขอบเครื่องหมาย

##### เครื่องหมายที่เครื่องมือแก้ไขใช้เมื่อไม่ได้แสดงขอบเครื่องหมาย

แถบเครื่องมือแท็ก

#### เส้นแนวในเครื่องมือแก้ไข

เครื่องมือแก้ไขสามารถกำหนดให้แสดงข้อมูลบางอย่างของเอกสารที่โดยปกติจะมองไม่เห็นได้ เช่น แนวการร่นย่อหน้า, ช่องว่าง และ อักขระปิดบรรทัด ข้อมูลเหล่านี้สามารถสั่งให้แสดงหรือไม่แสดงได้ ด้วยการสลับค่ารายการในเมนู มุมมอง เครื่องมือแก้ไข เส้นแนวการร่นย่อหน้าเป็นเส้นไข่ปลาเล็ก ๆ ที่วาดเชื่อมวงเล็บปีกกาที่เข้าคู่กันในซอร์สโค้ด และเมื่อเคอร์เซอร์วางอยู่ที่วงเล็บปีกกาที่เข้าคู่กัน เส้นแนวการร่นย่อหน้าของวงเล็บคู่นั้นก็จะถูกเน้นเพื่อให้เห็นระดับของการร่นอย่างชัดเจน

##### เครื่องมือแก้ไขพร้อมเส้นแนว

เครื่องมือแก้ไขพร้อมเส้นแนว

#### การเน้นไวยากรณ์

แอนจูตา สามารถเน้นไวยากรณ์ได้หลายภาษา การเน้นนี้มักเป็นไปโดยอัตโนมัติ โดยพิจารณาชนิดของแฟ้มจากนามสกุล ถ้า แอนจูตา ไม่สามารถระบุชนิดของแฟ้มได้ ก็จะไม่มีการเน้นไวยากรณ์ คุณสามารถบังคับเจาะจงรูปแบบการเน้นได้ โดยเลือกรูปแบบจากเมนู มุมมอง เครื่องมือแก้ไข โหมดเน้น

แอนจูตาใช้แฟ้มคุณสมบัติชื่อ `$prefix/share/anjuta/properties/anjuta.properties` ซึ่งมีรูปแบบข้อมูลเหมือนกับแฟ้มคุณสมบัติของ SciTE แต่ไม่ได้ใช้คุณสมบัติทั้งหมด รูปแบบของการแสดงแต่ละองค์ประกอบของทุกภาษาจะกำหนดไว้ในแฟ้มชื่อ `$prefix/share/anjuta/properties/styles.properties` ซึ่งจะใช้คุณสมบัติบางอย่างตามที่กำหนดโดยแอนจูตาร่วมกันในแฟ้ม `$home/.config/anjuta/scintilla/editor-style.properties`

#### การพับโค้ด

แอนจูตาสามารถแสดง การพับโค้ด สำหรับแฟ้มซอร์สที่เขียนด้วยภาษาที่มีโครงสร้างเป็นแบบบล็อค (เช่น C, C++, Pascal, Java) ได้ ทุกบล็อคของโค้ดในซอร์สสามารถพับหรือคลี่ออกได้ โดยการคลิกที่จุดพับในขอบพับโค้ดของหน้าต่าง เครื่องมือแก้ไข (โดยปกติจะเป็นสัญลักษณ์ +/- หรือลูกศรขึ้น/ลง) จุดพับเหล่านี้จะปรากฏโดยอัตโนมัติสำหรับแฟ้มซอร์สที่มีบล็อคของโค้ด

การพับโค้ดมีประโยชน์สำหรับการแก้ไขแฟ้มซอร์สขนาดใหญ่ที่มีหลายพันบรรทัดโดยเฉพาะ เพื่อพับบล็อคเก็บแล้ว เอกสารก็จะดูเล็กลง ช่วยให้ไล่ดูและแก้ไขแฟ้มได้ง่าย

โปรดทราบว่าการพับโค้ดและเส้นแนวในเครื่องมือแก้ไขมีเฉพาะในเครื่องมือแก้ไขที่ใช้ Scintilla เท่านั้น

#### การจัดรูปแบบซอร์สโค้ดโดยอัตโนมัติ

แอนจูตาสามารถร่นย่อหน้าอัตโนมัติ (จัดรูปแบบอัตโนมัติ) ให้กับซอร์สหรือแฟ้มส่วนหัวในภาษา C หรือ C++ ได้ การร่นย่อหน้าอัตโนมัตินี้ ทำให้ซอร์สโค้ดดูสะอาด อ่านง่าย ลดโอกาสของความผิดพลาดทางไวยากรณ์ และเหนือสิ่งอื่นใด ช่วยประหยัดเวลา การร่นย่อหน้าแฟ้มซอร์สปัจจุบันโดยอัตโนมัติ ทำได้โดยเลือก แก้ไข ร่นย่อหน้าอัตโนมัติ ในแถบเมนู คุณสามารถเปลี่ยนแนวทางการจัดรูปแบบได้ โดยกำหนดตัวเลือกต่าง ๆ ในการปรับแต่งค่า

### เบราว์เซอร์สัญลักษณ์

คุณสามารถไล่ดูซอร์สและแฟ้มส่วนหัวภาษา C และ C++ ได้โดยใช้ แท็ก ที่อยู่ในแฟ้ม แท็ก (หรือ สัญลักษณ์) หนึ่ง ๆ จะอ้างถึงสิ่งที่มีชื่ออยู่ในซอร์ส เช่น ตัวฟังก์ชัน ข้อมูลโครงสร้าง หรือแมโคร แอนจูตาจะสำรวจแฟ้มซอร์สและส่วนหัว C และ C++ ที่เปิดอยู่เพื่อหาแท็กที่มี

แอนจูตา จะสำรวจหาแท็กในซอร์สและแฟ้มส่วนหัวทุกแฟ้มของโครงการที่เปิด คุณสามารถกระโดดไปยังตัวฟังก์ชัน การกำหนดข้อมูลโครงสร้าง การกำหนดคลาส หรือแท็กอื่น ๆ ได้ โดยไม่ต้องเปิดแฟ้มด้วยตัวเอง คุณไม่จำเป็นต้องรู้แม้แต่ว่าแฟ้มใดที่มีแท็กนั้นอยู่ เบราว์เซอร์สัญลักษณ์จะแสดงสัญลักษณ์ทั้งหมดที่มีอยู่ในโครงการให้

#### เบราว์เซอร์สัญลักษณ์

เบราว์เซอร์สัญลักษณ์

#### การปรับแท็กให้ตรงกัน

คุณไม่ต้องกังวลเกี่ยวกับการปรับข้อมูลของฐานข้อมูลแท็ก แอนจูตา จะดูแลทุกอย่างให้ สิ่งที่คุณต้องทำมีเพียงตัดสินใจว่าแท็กไหนที่คุณต้องการกระโดดไป!

### การค้นหาและแทนที่ข้อความในแฟ้ม

#### การค้นหา

การค้นหา ข้อความ หรือ นิพจน์เรกิวลาร์ ในแฟ้มปัจจุบัน ทำได้โดยเลือก แก้ไข ค้นหา หา หรือกด Ctrl Alt F จะเป็นการเปิดกล่องโต้ตอบ หา

ใช้กล่องข้อความระบุข้อความที่จะค้นหา และเลือกเพื่อระบุว่าเป็นข้อความปกติหรือนิพจน์เรกิวลาร์ คุณสามารถระบุทิศทางของการค้นหา ระบุว่าจะค้นหาแบบตัวพิมพ์ใหญ่-เล็กตรงกันหรือไม่ รวมทั้งขอบเขตของการค้นหาได้ คลิก ค้นหา เพื่อเริ่มต้นการค้นหา

ถ้าการค้นหานั้นประสบความสำเร็จ แอนจูตาจะกระโดดไปยังข้อความที่พบ หรือกระทำอย่างอื่น (ตาม การกระทำขณะค้นหา ที่คุณเลือกในแท็บ เป้าหมายการค้นหา) หากการค้นหาไม่ประสบความสำเร็จ แอนจูตาจะแสดงข้อความบอกว่าไม่พบข้อความที่ค้นหา

ถ้าคุณต้องการค้นหาอีกครั้ง ก็คลิกที่ปุ่ม ค้นหา ซ้ำอีก หรือกด Ctrl G จะเป็นการหาจุดถัดไปที่ตรงกัน (ใช้ Shift Ctrl G ถ้าจะหาจุดก่อนหน้าที่ตรงกัน) คุณยังสามารถเปลี่ยนคำค้นได้ด้วยในระหว่างนี้ โดยป้อนข้อความใหม่ในช่อง นิพจน์ค้นหา ในกล่องโต้ตอบค้นหา

##### กล่องโต้ตอบค้นหาข้อความ

หากต้องการหยุดการค้นหาที่ยาวนาน ก็กดปุ่ม หยุด

#### การระบุช่วงค้นหา

ในแท็บ เป้าหมายการค้นหา กำหนดตำแหน่งที่จะค้นหา และการกระทำที่จะทำถ้าหาพบ

คุณสามารถกำหนดจำนวนการกระทำสูงสุดที่จะทำได้

##### กล่องโต้ตอบเป้าหมายการค้นหา

ผู้ใช้สามารถเลือกแหล่งข้อความที่จะเข้าไปค้นหาได้

##### เป้าหมายการค้นหาขณะแสดงตัวเลือก

##### การค้นหาในแฟ้มต่าง ๆ

การค้นหาข้อความในโครงการของคุณทั้งโครงการ ทำได้โดยเลือกข้อมูล ค้นหาใน: เป็น "แฟ้มโครงการทั้งหมด"

ในแท็บ นิพจน์ค้นหา ป้อนข้อความที่คุณต้องการค้นหา และระบุตัวเลือกการค้นหา เช่น ตัวพิมพ์ใหญ่-เล็กตรงกัน หรือ จับคู่ทั้งคำ แล้วคลิก ค้นหา เพื่อเริ่มต้นการค้นหา

การค้นหาข้อความในกลุ่มแฟ้ม ทำได้โดยเลือกข้อมูล ค้นหาใน: เป็น "ระบุแพตเทิร์นของแฟ้ม" จากนั้น กำหนดตัวแปรการค้นหา แล้วคลิก ค้นหา เพื่อเริ่มต้นการค้นหา

###### แพตเทิร์นระบุแฟ้มที่จะค้นหา

#### การระบุการกระทำขณะค้นหา

คุณสามารถเลือกการกระทำที่จะทำเมื่อค้นหาสำเร็จได้

การกระทำบางอย่างอาจจะไม่สามารถใช้งานได้ ขึ้นอยู่กับการเลือกก่อนหน้านี้ (ค้นหาใน, ทิศทางค้นหา เป็นต้น)

##### ตัวเลือกการกระทำในแท็บเป้าหมายการค้นหา

#### การแทนที่

การค้นหาและแทนที่ ก็คล้ายกับการหาข้อความธรรมดา ยกเว้นว่าคุณต้องระบุข้อความแทนที่ในกล่องข้อความ แทนที่ด้วย รวมทั้งระบุว่าคุณต้องการให้ถามก่อนที่จะแทนที่แต่ละจุดหรือไม่ ("แทนที่ข้อความถัดไปที่ตรงกัน" หรือ "แทนที่ข้อความที่ตรงทั้งหมด")

##### การแทนที่

เลือก แทนที่ เพื่อแทนที่ข้อความที่ตรงกัน หรือ ค้นหา เพื่อกระโดดไปยังข้อความถัดไปที่ตรงกัน

#### การตั้งค่าการค้นหา

คุณสามารถบันทึกตัวเลือกการค้นหาได้ด้วย

รายการที่เน้นสีแดงเป็นรายการที่ใช้งานอยู่ รายการปริยายจะระบุค่าตั้งของการค้นหาที่จะโหลดเมื่อเริ่มใช้งานแอนจูตา

##### กล่องโต้ตอบตั้งค่าการค้นหา

### การพิมพ์แฟ้ม

คุณสามารถดูตัวอย่างก่อนพิมพ์ได้โดยเลือก แฟ้ม ตัวอย่างก่อนพิมพ์ จะเป็นการวาดแฟ้มปัจจุบันและนำเสนอเป็นตัวอย่างของการพิมพ์ ซอร์สโค้ดที่เน้นในเครื่องมือแก้ไขก็จะเน้นเหมือนกันในตัวอย่างก่อนพิมพ์ (และในการพิมพ์ต่อไป) แท็บ การพิมพ์ ในการปรับแต่งปลั๊กอินเครื่องมือแก้ไขของคุณ จะมีตัวเลือกเพิ่มเติมให้คุณสามารถพิมพ์โดยมีหมายเลขบรรทัด ตัดบรรทัด และ/หรือ มีส่วนหัวของหน้ากระดาษได้

#### การปรับแต่งการพิมพ์

การปรับแต่งการพิมพ์

เมื่อคุณพร้อมที่จะพิมพ์และพอใจกับตัวอย่างแล้ว ก็ให้เลือก แฟ้ม พิมพ์ หรือกดปุ่ม พิมพ์ จากหน้าต่างตัวอย่างก่อนพิมพ์ จะเป็นการเปิดกล่องโต้ตอบสั่งพิมพ์จริงดังที่แสดงด้านล่าง เลือกพารามิเตอร์การพิมพ์ที่เหมาะสม แล้วกด พิมพ์ เพื่อพิมพ์แฟ้มนั้น

คุณสามารถกำหนดแนววางกระดาษเป็นแนวนอนหรือแนวตั้ง กำหนดขนาดกระดาษ แนววางของหน้า และชนิดกระดาษได้ด้วย อย่าลืมกำหนดค่าเหล่านี้ให้ถูกต้องตามเครื่องพิมพ์ของคุณ มิฉะนั้นงานพิมพ์อาจออกมาไม่ถูกต้อง

#### กล่องโต้ตอบสั่งพิมพ์

กล่องโต้ตอบสั่งพิมพ์

## การจัดการโครงการ

แอนจูตามีปลั๊กอินเครื่องมือจัดการโครงการที่ทรงพลัง ซึ่งสามารถเปิดโครงการที่ใช้ automake/autoconf ได้เกือบทั้งหมด อาจมีบ้างบางโครงการที่เปิดไม่สำเร็จเพราะมีการตั้งค่าบางอย่างที่แปลกประหลาด แต่ตราบใดที่โครงการที่เปิดใช้ automake/autoconf แบบปกติ ก็ควรจะเปิดได้

สิ่งที่เนี้ยบก็คือ แอนจูตาไม่เก็บข้อมูลใดของโครงการนอกเหนือไปจากที่มีอยู่แล้วในโครงสร้างโครงการ กล่าวคือ ไม่มีข้อมูลโครงการที่แยกดูแลต่างหากโดยแอนจูตา และการประมวลผลโครงการทั้งหมดจะดำเนินการโดยตรงภายในโครงสร้างโครงการ ช่วยให้โครงการสามารถนำไปดูแลหรือพัฒนานอกแอนจูตาได้ โดยไม่จำเป็นต้องแปลงรูปแบบข้อมูลไปมากับรูปแบบเฉพาะของแอนจูตาเลย และเนื่องจากในทางเทคนิค โครงการของแอนจูตาก็คือโครงการ automake การพัฒนาแบบผสม (ระหว่างผู้ใช้แอนจูตา กับผู้ที่ไม่ได้ใช้แอนจูตา) หรือการสลับไปมาระหว่างแอนจูตากับเครื่องมืออื่น ๆ จึงค่อนข้างทำได้โดยปราศจากอุปสรรคใด ๆ

### การสร้างโครงการใหม่

#### การสร้างโครงการใหม่จากแม่แบบ

ปลั๊กอินเครื่องมือวิเศษสร้างโครงการ ใช้กลไกประมวลผลแม่แบบที่ชื่อ autogen โครงการใหม่ทั้งหมดจะถูกสร้างจากแม่แบบซึ่งเขียนด้วยไวยากรณ์ของ autogen เครื่องมือวิเศษสร้างโครงการจะช่วยให้คุณสร้างโครงการใหม่ได้จากชุดแม่แบบของโครงการที่คัดสรรไว้ ซึ่งมีทั้งโครงการทั่วไปอย่างง่าย, โครงการแบบแบนราบ (ไม่มีไดเรกทอรีย่อย), โครงการ GTK+, GNOME, Java, Python และอื่น ๆ คุณสามารถดาวน์โหลดแม่แบบใหม่มาติดตั้งได้อย่างง่าย ๆ เนื่องจากแม่แบบเหล่านั้นเป็นเพียงชุดของแฟ้มข้อความธรรมดา

การสร้างโครงการ ทำได้โดยเลือกรายการเมนู แฟ้ม ใหม่โครงการ … เพื่อเปิดเครื่องมือวิเศษสร้างโปรแกรม กรุณาอ่านหน้าแรกด้วยความระมัดระวัง แล้วคลิก ถัดไป เพื่อทำต่อไป

เลือกชนิดของโปรแกรมที่คุณต้องการสร้างในหน้าที่สอง แล้วคลิก ถัดไป เพื่อทำต่อไป

ในหน้าถัด ๆ ไป ให้คุณป้อนรายละเอียดที่จำเป็นสำหรับโครงการของคุณ คุณสามารถเปลี่ยนค่าต่าง ๆ เหล่านี้ได้ในภายหลัง แต่ขอแนะนำให้กำหนดค่าให้ถูกต้องตั้งแต่แรก เพื่อข้อมูลที่ครบสมบูรณ์ของโครงการ ช่องว่าง หรืออักขระที่ไม่ใช่ตัวหนังสือหรือตัวเลข ยกเว้นขีดเส้นใต้(_) และเครื่องหมายขีด (-) ไม่สามารถใช้ได้ในช่องป้อนข้อความเหล่านี้ (ยกเว้นช่อง ผู้เขียน)

คุณยังสามารถระบุว่าโครงการของคุณจะมี การรองรับนานาภาษา โดยใช้ gettext ด้วยหรือไม่ (อ่านรายละเอียดเพิ่มเติมได้จาก หน้า info ของ gettext) การรองรับนานาภาษาจะช่วยให้โครงการของคุณใช้ข้อความได้หลายภาษาตามท้องถิ่น เช่น อังกฤษ ฝรั่งเศส และดัตช์ ตัวเลือกที่เหลือจะเป็นการตั้งค่าว่าควรใส่ข้อความลิขสิทธิ์ของ GNU ไว้ในหมายเหตุที่ด้านบนของแต่ละแฟ้มหรือไม่ รวมทั้งการเปิดใช้เมนูเดสก์ท็อป GNOME หากจำเป็น การรองรับไลบรารีใช้ร่วมจะทำให้คุณเพิ่มมอดูลที่เป็นไลบรารีใช้ร่วมได้ในภายหลัง ถ้าคุณวางแผนที่จะมีไลบรารีในโครงการ ก็ควรจะเปิดใช้งาน นอกจากนี้ แอนจูตายังอาจขอข้อมูลอื่นเพิ่มเติมอีก ขึ้นอยู่กับชนิดของโครงการที่กำลังสร้าง

ขั้นตอนสุดท้ายเป็นการตรวจสอบยืนยันข้อมูลที่คุณป้อนมาทั้งหมด คลิก เสร็จสิ้น เพื่อเริ่มสร้างโครงการ

เมื่อสร้างโครงการเสร็จแล้ว คุณสามารถทดลองได้ โดยลองประกอบสร้างโครงการและเรียกทำงาน

#### การนำเข้าโครงการ

การนำเข้าโครงการ ใช้สำหรับนำเข้าโครงการที่มีอยู่แล้วและแปลงให้เป็นโครงการของ แอนจูตา คุณสามารถเรียกเครื่องมือวิเศษนำเข้าโครงการได้ทางเมนู แฟ้ม ใหม่โครงการจากซอร์สที่มีอยู่แล้ว และทำตามคำแนะนำที่เครื่องมือวิเศษบอก เมื่อนำเข้าโครงการแล้ว ก็จะสามารถเปิดโครงการใน แอนจูตา ได้เหมือนโครงการอื่น ๆ ทั่วไปของ แอนจูตา

การนำเข้าโครงการจะใช้ได้ต่อเมื่อโครงการที่มีอยู่ของคุณใช้ autoconf/automake หรือใช้ Makefile ธรรมดาแบบจำกัดมากเท่านั้น

### การโหลดและบันทึกโครงการ

#### การโหลดโครงการ

การเปิดโครงการ ทำได้โดยเลือกรายการเมนู แฟ้ม เปิด … เลือกแฟ้มโครงการ (`*.anjuta`) ในกล่องโต้ตอบ แล้วคลิก ตกลง

ถ้าโครงการเคยถูกเปิดไปแล้วเมื่อเร็ว ๆ นี้ คุณก็จะพบชื่อโครงการอยู่ในเมนู แฟ้ม ล่าสุด เลือกชื่อแฟ้มโครงการจากรายชื่อ ก็จะเป็นการเปิดโครงการนั้น

ทันทีที่โครงการถูกเปิดขึ้น แอนจูตา จะเข้าสู่ โหมดโครงการ โดยจะมีช่อง 3 ช่องในหน้าต่างโครงการ ช่องแรกคือช่องโครงการ แสดงรายชื่อแฟ้มต่าง ๆ ในโครงการแยกตามชนิด ช่องที่สองคือเบราว์เซอร์สัญลักษณ์ ซึ่งได้อธิบายไปแล้วในหมวด เบราว์เซอร์สัญลักษณ์ ช่องที่สามคือช่องแสดงแฟ้มของโครงการในรูปที่คล้ายกับเครื่องมือจัดการแฟ้มขนาดเล็ก ในช่องแสดงแฟ้มนี้ จะแสดงแฟ้มทั้งหมดที่อยู่ในไดเรกทอรีโครงการ เมื่อคลิกขวาที่แฟ้มเหล่านี้ จะผุดเมนูบริบทให้เลือกการกระทำเกี่ยวกับแฟ้ม

ถ้าโครงการเป็น CVS tree ด้วย ก็จะแสดงหมายเลขฉบับแก้ไขของแฟ้มไว้ที่ด้านขวาของชื่อแฟ้มในช่องแสดงแฟ้มด้วย

#### การบันทึกโครงการ

โครงการจะถูกบันทึกโดยอัตโนมัติเมื่อคุณปิดโครงการ เพราะการเปลี่ยนแปลงทั้งหมด จะกระทำโดยตรงกับไดเรกทอรีของโครงการอยู่แล้ว

### โครงสร้างโครงการ

นี่คือ หน้าต่างโครงการ พร้อมเมนูบริบท (สามารถเปิดได้โดยคลิกที่เมาส์ปุ่มขวา)

#### หน้าต่างโครงการ

หน้าต่างโครงการ

หน้าต่างโครงการ แสดงโครงสร้างลำดับชั้นของ automake ในโครงการ โดยแบ่งเป็น กลุ่ม ของ เป้าหมาย กลุ่มในที่นี้ก็คือไดเรกทอรีในโครงการ และเป้าหมายก็คือเป้าหมายของ automake ตามปกติ (อย่าสับสนกับเป้าหมายของ make) อันที่จริง หน้าต่างโครงการ จะมีสองส่วน ส่วนล่างแสดงลำดับชั้นทั้งหมดของโครงการ และส่วนบนแสดงรายชื่อเป้าหมายที่สำคัญโดยตรง เป้าหมายที่สำคัญได้แก่เป้าหมายที่เป็นแฟ้มโปรแกรมและไลบรารีเป็นต้น การแสดงเช่นนี้ทำให้เข้าถึงเป้าหมายดังกล่าวได้ง่าย ซึ่งมีประโยชน์อย่างยิ่งในโครงการขนาดใหญ่ ที่อาจมีลำดับชั้นที่ลึกและยากที่จะท่องหาจากแผนภาพต้นไม้เพียงอย่างเดียว เป้าหมายต่าง ๆ จะประกอบด้วยแฟ้มซอร์สอีกทีหนึ่ง

- กลุ่ม จะใช้ในการจำแนกเป้าหมายตามตรรกะ โครงการหนึ่ง ๆ สามารถมีกลุ่มจำนวนเท่าใดก็ได้ แต่ละกลุ่มสามารถมีกลุ่มย่อยและเป้าหมายต่าง ๆ ได้ ในโครงการ automake กลุ่มก็คือไดเรกทอรีย่อยในโครงการนั่นเอง กลุ่มระดับบนสุดจะมีชื่อเป็น "/" เสมอ

- เป้าหมาย คือเป้าหมายของการประกอบสร้างในโครงการ เช่น โปรแกรม (แฟ้มโปรแกรมไบนารี), สคริปต์, ไลบรารี และข้อมูลเบ็ดเตล็ด ไม่ใช่เป้าหมายทุกชนิดที่จะประกอบสร้างจากซอร์ส บางอย่างมีอยู่เพียงเพื่อจัดซอร์สและอาจไม่มีตัวตนทางกายภาพ (เช่น เป้าหมายที่เป็นข้อมูลเบ็ดเตล็ด) เป้าหมายต่าง ๆ จะอยู่ภายใต้กลุ่ม ดูรายชื่อชนิดของเป้าหมายทั้งหมดได้ที่หัวข้อ "การเพิ่มเป้าหมาย"

- แฟ้มซอร์ส อาจใช้ในการประกอบสร้างเป้าหมาย แม้ว่าบางแฟ้มจะเพียงแค่เป็นของเป้าหมายก็ตาม แฟ้มซอร์สจะต้องอยู่ภายใต้เป้าหมายเท่านั้น เป้าหมายหลายชนิดเจาะจงชนิดของแฟ้มซอร์ส (เช่น เป้าหมายชนิดโปรแกรมและไลบรารี) แต่บางเป้าหมายสามารถใช้กับแฟ้มชนิดใดก็ได้ (เช่น เป้าหมายที่เป็นข้อมูลเบ็ดเตล็ด)

แต่ละกลุ่มและเป้าหมายของโครงการ สามารถตั้งค่าได้ตามวิธีมาตรฐานของ automake คุณสามารถกำหนดแฟล็กของคอมไพเลอร์และลิงเกอร์ให้กับแต่ละเป้าหมายได้โดยตรง หรือจะตั้งค่าตัวแปร configure ก็ได้ คุณสามารถกำหนดจุดติดตั้งของเป้าหมายต่าง ๆ ภายในกลุ่มได้ด้วย

เช่นเดียวกับเครื่องมือจัดการแฟ้ม มุมมองเครื่องมือจัดการโครงการยังมีคำสั่งสะดวกใช้ (สามารถเข้าถึงได้จากเมนูบริบท) สำหรับแฟ้มซอร์สและเป้าหมายด้วย

มีเครื่องมือบรรทัดคำสั่งมากมายที่สามารถใช้ดูแลและจัดการโครงการได้ และแต่ละเครื่องมือก็จะมีกฎและความสามารถเฉพาะของตนเอง แอนจูตา พยายามทำให้การกระทำต่าง ๆ ที่ใช้บ่อยทำงานเป็นอัตโนมัติโดยใช้ปลั๊กอิน แต่บางครั้งคุณก็อาจยังจำเป็นต้องสั่งการด้วยตนเอง

คุณอาจปรับเปลี่ยนโครงสร้างของโครงการโดยใช้เครื่องมือภายนอก หรือแก้ไขแฟ้มโครงการด้วยมือได้ ไม่สำคัญว่าโครงการจะโหลดใน แอนจูตา หรือไม่ แอนจูตา จะปรับข้อมูลตัวเองตามการเปลี่ยนแปลงภายนอกที่เกิดขึ้นกับโครงการเอง

### กลุ่มและเป้าหมาย

#### การเพิ่มกลุ่ม

วิธีเพิ่มกลุ่มใหม่ (ซึ่งก็คือไดเรกทอรีในโครงการที่ใช้ automake):

- เลือก โครงการ เพิ่มกลุ่ม แล้วกล่องโต้ตอบสำหรับเพิ่มกลุ่มใหม่จะผุดขึ้นมา

- เลือกกลุ่มที่จะเพิ่มกลุ่มใหม่

- ป้อนชื่อของกลุ่มใหม่นั้น แล้วคลิก เพิ่ม

สำหรับโครงการ automake ไดเรกทอรีใหม่ที่มีชื่อตามที่กำหนดจะถูกสร้างขึ้นภายใต้ไดเรกทอรีของกลุ่มแม่

คุณยังสามารถเพิ่มกลุ่มใหม่จากหน้าต่าง โครงการ ได้โดยตรง โดยคลิกขวาที่กลุ่มที่จะเพิ่มกลุ่มใหม่ แล้วเลือก เพิ่มกลุ่ม จากเมนูบริบท

#### การลบกลุ่ม

วิธีลบกลุ่ม:

- คลิกขวาที่กลุ่มในมุมมอง เครื่องมือจัดการโครงการ

- เลือก เอาออก จากเมนูบริบท

เป้าหมายและซอร์สที่เกี่ยวข้องกับกลุ่มจะถูกลบออกจากโครงการ (แต่ไม่ได้ถูกลบออกจากระบบแฟ้ม คุณสามารถเพิ่มกลับเข้ามาในโครงการได้อีกในภายหลังถ้าต้องการ)

#### การเพิ่มเป้าหมาย

วิธีเพิ่มเป้าหมายใหม่:

- เลือก โครงการ เพิ่มเป้าหมาย แล้วกล่องโต้ตอบสำหรับเพิ่มเป้าหมายใหม่จะผุดขึ้น

- เลือกกลุ่มที่จะเพิ่มเป้าหมาย

- เลือกชนิดของเป้าหมาย

- ป้อนชื่อเป้าหมายใหม่ แล้วคลิก เพิ่ม

คุณยังสามารถเพิ่มเป้าหมายใหม่จากหน้าต่าง โครงการinterface>

ชื่อเป้าหมาย โดยปกติจะต้องขึ้นต้นและลงท้ายด้วยคำมาตรฐานที่กำหนดไว้ ขึ้นอยู่กับชนิดของเป้าหมาย แอนจูตาจะเตือนถ้าชื่อนั้นไม่ถูกต้อง และอาจให้ตัวอย่างชื่อที่ถูกต้องด้วย

มีเป้าหมายหลายชนิดสำหรับโครงการ automake คือ:

- เป้าหมายชนิด โปรแกรม ใช้สำหรับแฟ้มโปรแกรมไบนารี ใช้เมื่อคุณต้องการเพิ่มแฟ้มโปรแกรมไบนารีในโครงการ โดยปกติแล้ว เป้าหมายชนิดโปรแกรมทั้งหมดจะถูกติดตั้งในไดเรกทอรีมาตรฐานสำหรับแฟ้มโปรแกรม เช่น /usr/bin หรือ /usr/local/bin คุณสามารถเปลี่ยนที่ได้ โดยระบุไดเรกทอรีติดตั้งอื่นในคุณสมบัติของกลุ่มที่บรรจุเป้าหมายนั้น

- เป้าหมายชนิด ไลบรารีใช้ร่วม ใช้สำหรับไลบรารีใช้ร่วมหรือไลบรารีแบบไดนามิก ใช้เมื่อคุณจะเพิ่มไลบรารีใช้ร่วมในโครงการ โดยปกติแล้ว ไลบรารีใช้ร่วมทั้งหมดจะถูกติดตั้งในไดเรกทอรีมาตรฐานสำหรับไลบรารี เช่น /usr/lib หรือ /usr/local/lib คุณสามารถเปลี่ยนที่ได้ โดยระบุไดเรกทอรีติดตั้งอื่นในคุณสมบัติของกลุ่มที่บรรจุเป้าหมายนั้น

- เป้าหมายชนิด ไลบรารีสแตติก ใช้สำหรับไลบรารีแบบสแตติก ใช้เมื่อคุณจะเพิ่มไลบรารีแบบสแตติกในโครงการ โดยปกติแล้ว ไลบรารีแบบสแตติกทั้งหมดจะถูกติดตั้งในไดเรกทอรีมาตรฐานสำหรับไลบรารี เช่น /usr/lib หรือ /usr/local/lib คุณสามารถเปลี่ยนที่ได้ โดยระบุไดเรกทอรีติดตั้งอื่นในคุณสมบัติของกลุ่มที่บรรจุเป้าหมายนั้น

- เป้าหมายชนิด มอดูลจาวา ใช้สำหรับมอดูลของจาวา ใช้เมื่อคุณจะจัดกลุ่มซอร์สจาวาเข้าด้วยกันเป็นมอดูล คุณต้องระบุไดเรกทอรีติดตั้งสำหรับเป้าหมายนี้ เพื่อติดตั้งแฟ้ม .class ด้วย ค่านี้สามารถกำหนดได้ในคุณสมบัติของกลุ่มนี้ที่บรรจุเป้าหมายนั้น

  ในกลุ่มหนึ่ง ๆ สามารถมีมอดูลจาวาได้เพียงหนึ่งมอดูลเท่านั้น นี่เป็นข้อจำกัดที่กำหนดโดย automake กรุณาอ่านข้อมูลเพิ่มเติมได้จากหน้า info ของ automake

- เป้าหมายชนิด มอดูลไพธอน ใช้สำหรับมอดูลของไพธอน ใช้เมื่อคุณจะจัดกลุ่มซอร์สไพธอนเข้าด้วยกันเป็นมอดูล คุณต้องระบุไดเรกทอรีติดตั้งสำหรับเป้าหมายนี้ เพื่อติดตั้งซอร์สด้วย ค่านี้สามารถกำหนดได้ในคุณสมบัติของกลุ่มนี้ที่บรรจุเป้าหมายนั้น

- เป้าหมายชนิด สคริปต์ ใช้สำหรับจัดกลุ่มสคริปต์ สคริปต์ทั้งหมดจะถูกติดตั้งในไดเรกทอรีมาตรฐานสำหรับแฟ้มโปรแกรม

- เป้าหมายชนิด ข้อมูลเบ็ดเตล็ด ใช้สำหรับจัดกลุ่มแฟ้มทั่วไปในโครงการ คุณต้องระบุไดเรกทอรีติดตั้งในคุณสมบัติของกลุ่มด้วย

- เป้าหมายชนิด แฟ้มส่วนหัว ใช้สำหรับจัดกลุ่มแฟ้มส่วนหัวของ C/C++ ที่ต้องติดตั้งลงในระบบ (ตัวอย่างเช่น เพื่อเป็นส่วนหนึ่งของ API ของไลบรารี) (สำหรับแฟ้มส่วนหัวไม่ต้องติดตั้ง ก็ทำให้เป็นส่วนหนึ่งของเป้าหมายชนิดโปรแกรมร่วมกับซอร์สอื่น ๆ เสีย) แฟ้มส่วนหัวจะถูกติดตั้งในไดเรกทอรีมาตรฐานสำหรับแฟ้มส่วนหัว เว้นแต่จะมีการระบุพาธติดตั้งในคุณสมบัติของกลุ่ม

- เป้าหมายชนิด เอกสารแบบ Man และ เอกสารแบบ Info ใช้สำหรับจัดกลุ่มเอกสารแบบ man และ info ตามลำดับ โดยปกติแล้ว แฟ้มเอกสารเหล่านี้จะถูกติดตั้งในไดเรกทอรีติดตั้งมาตรฐาน

#### การลบเป้าหมาย

วิธีลบเป้าหมาย:

- คลิกขวาที่เป้าหมายในมุมมอง เครื่องมือจัดการโครงการ

- เลือก เอาออก จากเมนูบริบท

ซอร์สที่เกี่ยวข้องกับเป้าหมายจะถูกลบออกจากโครงการด้วย (แต่จะไม่ถูกลบออกจากระบบแฟ้ม)

### การเพิ่มและลบแฟ้ม

#### การเพิ่มแฟ้มซอร์ส

เลือกรายการเมนู โครงการ เพิ่มแฟ้มซอร์ส จากนั้น จากกล่องโต้ตอบ เลือกเป้าหมายที่จะเพิ่มแฟ้มเข้าและตัวแฟ้มที่จะเพิ่ม คุณสามารถเพิ่มแฟ้มได้ทีละหลายแฟ้ม โดยเลือกหลายแฟ้มจากกล่องโต้ตอบเลือกแฟ้มด้วยปุ่ม Shift หรือ Ctrl แล้วคลิกปุ่ม เพิ่ม เพื่อเพิ่มแฟ้มเข้าในโครงการ

โดยปกติแล้ว แฟ้มที่เปิดอยู่ในเครื่องมือแก้ไขจะถูกเลือกไว้ในกล่องโต้ตอบสำหรับเพิ่มเลย อีกวิธีที่สะดวกในการเพิ่มแฟ้มคือ คลิกขวาใน เครื่องมือจัดการแฟ้ม แล้วเลือก เพิ่มเข้าในโครงการ จากเมนูบริบท

ถ้าแฟ้มที่คุณเลือกถูกเพิ่มเข้าไปในโครงการอยู่ก่อนแล้ว แอนจูตา ก็จะไม่เพิ่มอีก และจะเตือนคุณว่าแฟ้มนั้นถูกเพิ่มไปแล้ว

ถ้าแฟ้มที่คุณเลือกไม่ได้อยู่ในไดเรกทอรีโครงการ คุณจะถูกถามยืนยันว่าคุณต้องการจะคัดลอกแฟ้มเข้าไปในไดเรกทอรีของเป้าหมายหรือไม่ แอนจูตา ไม่สามารถเพิ่มแฟ้มที่อยู่นอกไดเรกทอรีของเป้าหมายเข้าไปโดยตรงได้ โดยไม่คัดลอกเข้าไปก่อน

#### การเอาแฟ้มซอร์สออก

การเอาแฟ้มออกจากโครงการ ทำได้โดยคลิกขวาที่แฟ้มที่คุณต้องการเอาออกใน หน้าต่างโครงการ แล้วเลือก เอาออก จากเมนูบริบท

จะปรากฏกล่องโต้ตอบยืนยัน แล้วแฟ้มนั้นจะถูกเอาออกจากโครงการ

##### แฟ้มนั้นไม่ได้ถูกลบ!

แฟ้มที่เอาออกนั้น ไม่ได้ถูกลบออกจากระบบแฟ้ม แฟ้มจะยังคงอยู่เหมือนเดิม และคุณสามารถเพิ่มกลับเข้ามาใหม่ได้ถ้าต้องการ แฟ้มนั้นเพียงแค่ถูกลบออกจากรายชื่อของโครงการเท่านั้น และจะไม่มีส่วนในการทำงานใด ๆ ของโครงการอีก ไม่ว่าจะเป็นการคอมไพล์ การประกอบสร้าง การแจกจ่าย เป็นต้น

### การตั้งค่าโครงการ

การตั้งค่าโครงการเป็นการตั้งค่าแฟล็กของการประกอบสร้างที่ถูกต้องสำหรับเป้าหมายต่าง ๆ กลุ่มต่าง ๆ และตัวโครงการเอง คุณสามารถตั้งค่าแฟล็กเหล่านี้ได้ในกล่องโต้ตอบคุณสมบัติของแต่ละส่วนดังกล่าว

คุณสามารถใช้ตัวแปรของ autoconf และ automake ซึ่งถูกกำหนดค่าโดยอัตโนมัติสำหรับโครงการในระหว่างการตั้งค่าได้อย่างอิสระ นอกเหนือจากตัวแปรที่ถูกกำหนดค่าโดยอัตโนมัติเหล่านี้ คุณยังสามารถกำหนดตัวแปรของคุณเองใน คุณสมบัติโครงการ และใช้ตัวแปรเหล่านั้นในคุณสมบัติต่าง ๆ ได้ ซึ่งจะทำให้ง่ายต่อการปรับค่าแฟล็กในภายหลัง โดยเฉพาะเมื่อมีการใช้ตัวแปรในหลายเป้าหมาย

ตัวแปรที่ใช้บ่อยบางส่วนได้ลงรายชื่อไว้ที่นี่ สำหรับรายชื่อทั้งหมด ดูได้ที่ เอกสาร info ของ automake

- $(prefix): prefix ของการติดตั้ง โครงการจะถูกติดตั้งภายใต้ไดเรกทอรีย่อยหลายไดเรกทอรีภายใต้ prefix นี้ ค่าปริยายคือ /usr/local

- $(bindir): ไดเรกทอรีสำหรับติดตั้งแฟ้มโปรแกรมไบนารี เป้าหมายทั้งหมดที่เป็นแฟ้มโปรแกรมและสคริปต์จะถูกติดตั้งในไดเรกทอรีนี้ ค่าปริยายคือ $(prefix)/bin

- $(libdir): ไดเรกทอรีสำหรับติดตั้งไลบรารี เป้าหมายที่เป็นไลบรารีทั้งหมด (ทั้งแบบใช้ร่วมและแบบสแตติก) จะถูกติดตั้งในไดเรกทอรีนี้หรือไดเรกทอรีย่อยที่ต่ำลงไป ค่าปริยายคือ $(prefix)/lib

- $(module_CFLAGS) และ $(module_LIBS): แฟล็กเหล่านี้ถูกกำหนดค่าโดยสคริปต์ configure เพื่อใช้แพกเกจอื่นซึ่งโครงการของคุณต้องใช้ แพกเกจต่าง ๆ ที่โครงการใช้จะกำหนดใน คุณสมบัติโครงการ 'module' ในที่นี้คือกลุ่มแพกเกจซึ่งคุณระบุในคุณสมบัติโครงการ ดังจะอธิบายด้านล่าง

#### คุณสมบัติโครงการ

กล่องโต้ตอบคุณสมบัติโครงการสามารถเปิดได้โดยเลือก โครงการ คุณสมบัติ จากแถบเมนูบนสุด คุณสามารถ:

- กำหนดชื่อ รุ่น และ URL ของโครงการในหน้า ทั่วไป สามารถใช้ตัวแปร configure ในช่องข้อมูลเหล่านี้ได้ ในที่นี้ URL หมายถึง URL สำหรับรายงานบั๊กของโครงการ

- เพิ่มและลบสิ่งที่ต้องใช้สำหรับโครงการของคุณในหน้า แพกเกจ ดูรายละเอียดได้ที่ด้านล่าง

- สร้างตัวแปร configure เพิ่มเติมในหน้า ตัวแปร เพื่อใช้ในคุณสมบัติของกลุ่มและเป้าหมาย

สิ่งที่ต้องใช้ เป็นแพกเกจภายนอกที่โครงการเรียกใช้ จึงเป็นสิ่งที่ต้องการเพื่อประกอบสร้างโครงการ ส่วนติดต่อนี้สามารถเพิ่มได้เฉพาะแพกเกจที่ติดตั้งโดยใช้ pkg-config เท่านั้น สำหรับแพกเกจอื่น ๆ คุณสามารถแก้ไขแฟ้ม configure.ac เองได้

##### กล่องโต้ตอบคุณสมบัติโครงการ

กล่องโต้ตอบคุณสมบัติโครงการ

แพกเกจภายนอกที่ต้องใข้ จะจัดกลุ่มเป็น มอดูล เพื่อที่จะสามารถรวมแฟล็กสำหรับประกอบสร้างของแพกเกจในกลุ่มสำหรับเพิ่มเข้าในเป้าหมายต่าง ๆ เป็นกลุ่มก้อนได้อย่างสะดวก มอดูล ในที่นี้เป็นเพียงการจัดกลุ่มแพกเกจตามความต้องการโดยไม่มีข้อจำกัด และสามารถตั้งชื่ออะไรก็ได้ (ชื่อมอดูลใช้ได้เพียงตัวอักษร ตัวเลข และ _ เท่านั้น) โดยปกติก็จะใช้ชื่อตามเป้าหมายที่กลุ่มแพกเกจจะใช้ด้วย ดังนั้น สำหรับโครงการขนาดเล็กที่มีเป้าหมายเดียว ใช้เพียงมอดูลเดียวแทนสิ่งที่ต้องใช้ทั้งหมดก็เพียงพอ

แพกเกจแต่ละแพกเกจจะส่งออก แฟล็กของคอมไพเลอร์ และ ไลบรารี มาชุดหนึ่ง ค่าเหล่านี้จากแพกเกจทั้งหมดในมอดูลจะรวมเข้าด้วยกัน และกำหนดเป็นตัวแปร configure ชื่อ $(module_CFLAGS) และ $(module_LIBS) ตัวแปรเหล่านี้สามารถใช้ใน คุณสมบัติกลุ่ม และ คุณสมบัติเป้าหมาย ได้

วิธีเพิ่มแพกเกจที่ต้องใช้:

- เลือก โครงการ คุณสมบัติ เพื่อเปิดกล่องโต้ตอบคุณสมบัติโครงการ

- เลือกแท็บ แพกเกจ เพื่อเข้าสู่หน้าแพกเกจ

- เลือก มอดูล ที่จะเพิ่มแพกเกจ ถ้ายังไม่มีมอดูลที่สร้างไว้ หรือไม่มีมอดูลที่เหมาะสม ก็สร้างได้โดยคลิก เพิ่มมอดูล ตั้งชื่อที่สมเหตุสมผลให้กับมอดูล โดยควรใช้ตัวพิมพ์ใหญ่ทั้งหมด เพื่อให้เหมือนกับตัวแปร configure อื่น ๆ (ใช้เฉพาะตัวอักษร ตัวเลข และ '_' เท่านั้น) แล้วกด Enter เพื่อสร้างมอดูล

- คลิก เพิ่มแพกเกจ เพื่อเปิดกล่องโต้ตอบเลือกแพกเกจ

- เลือกแพกเกจที่จะเพิ่ม แล้วคลิก เพิ่ม

- คลิก ปิด เพื่อปิดกล่องโต้ตอบคุณสมบัติ

#### คุณสมบัติกลุ่ม

การแก้ไขคุณสมบัติของกลุ่ม ทำได้โดยดับเบิลคลิกที่กลุ่มในหน้าต่าง โครงการ เพื่อเปิดกล่องโต้ตอบ คุณสมบัติกลุ่ม (หรืออีกทางหนึ่ง คุณสามารถคลิกขวาที่กลุ่มและเลือก คุณสมบัติ จากเมนูบริบท)

##### กล่องโต้ตอบคุณสมบัติกลุ่ม

กล่องโต้ตอบคุณสมบัติกลุ่ม

คุณสมบัติที่กำหนดให้กับกลุ่มจะมีผลกับทุกเป้าหมายที่อยู่ในกลุ่ม ดังนั้น แฟล็กของคอมไพเลอร์หรือลิงเกอร์ใด ๆ ที่กำหนดให้กับกลุ่ม จะกลายเป็นส่วนหนึ่งของแฟล็กสำหรับเป้าหมายทั้งหมดในกลุ่มนั้น ๆ โดยอัตโนมัติ (เพิ่มเติมจากคุณสมบัติแต่ละรายการของแต่ละเป้าหมาย) กล่องโต้ตอบคุณสมบัติกลุ่มจะมีช่องข้อมูลต่อไปนี้

- พาธแฟ้มส่วนหัว: กำหนดไดเรกทอรีแฟ้มส่วนหัวสำหรับเป้าหมาย C และ C++ ของคุณที่นี่ คุณต้องป้อนตัวเลือกพาธแฟ้มส่วนหัวเต็ม ๆ ของคอมไพเลอร์ เช่น -I/usr/include/blah พาธแฟ้มส่วนหัวจะใช้ในหาแฟ้มส่วนหัวต่าง ๆ ที่ใช้ในแฟ้มซอร์สของคุณ (คุณยังสามารถเพิ่มแฟล็กคอมไพเลอร์อื่น ๆ ที่นี่ได้เช่นกัน แต่ทางที่ดี ควรกำหนดในช่องข้อมูล แฟล็กของคอมไพเลอร์ โดยเฉพาะจะดีกว่า ดังจะอธิบายด้านล่าง)

- แฟล็กของคอมไพเลอร์: ตั้งค่าแฟล็กเฉพาะสำหรับคอมไพเลอร์ที่นี่ จะมีช่องข้อมูลแยกกันสำหรับคอมไพเลอร์ชนิดต่าง ๆ แฟล็กที่สามารถตั้งค่าในช่องเหล่านี้ จะขึ้นอยู่กับคอมไพเลอร์จริงที่ใช้ คอมไพเลอร์ปริยายสำหรับ C/C++ คือ gcc/g++ (GNU C Compiler) ตรวจสอบรายละเอียดเพิ่มเติมได้จาก เอกสาร info ของ gcc

- ไดเรกทอรีติดตั้ง: กล่องโต้ตอบจะแสดงช่องข้อมูลสำหรับเป้าหมายแต่ละอันในกลุ่มที่ต้องระบุไดเรกทอรีติดตั้ง คุณควรกำหนดไดเรกทอรีติดตั้งแต่ละตัวโดยสัมพัทธ์กับตัวแปรไดเรกทอรีของ automake เช่น $(prefix), $(bindir), $(libdir) หรือ $(datadir)

#### คุณสมบัติเป้าหมาย

คุณสมบัติที่กำหนดให้กับเป้าหมายใด จะมีผลกับเป้าหมายนั้นเท่านั้น และเป้าหมายยังสืบทอดคุณสมบัติมาจากกลุ่มที่มันเป็นสมาชิกอีกด้วย

การตั้งค่าคุณสมบัติของเป้าหมาย ทำได้โดยดับเบิลคลิกที่เป้าหมายในหน้าต่าง โครงการ เพื่อเปิดกล่องโต้ตอบคุณสมบัติเป้าหมาย (หรืออีกทางหนึ่ง คุณสามารถคลิกขวาที่เป้าหมายและเลือก คุณสมบัติ จากเมนูบริบท)

##### กล่องโต้ตอบคุณสมบัติเป้าหมาย

กล่องโต้ตอบคุณสมบัติเป้าหมาย

คุณสามารถเพิ่มมอดูลที่คุณได้เพิ่มไว้ใน คุณสมบัติโครงการ เข้าในเป้าหมายเป็นรายตัวได้ที่นี่ การเปิดใช้มอดูล ก็เพียงแต่กากล่องกาข้างชื่อมอดูล จะเป็นการเพิ่มแฟล็กพาธแฟ้มส่วนหัวและแฟล็กลิงเกอร์ให้กับเป้าหมาย และเปิดให้คุณใช้งานมอดูลดังกล่าวภายในเป้าหมายนี้โดยอัตโนมัติ

##### ตัวเลือกระดับสูงของเป้าหมาย

ช่องข้อมูลต่อไปนี้จะมีในการตั้งค่าเป้าหมายขั้นสูงที่คุณจะพบเมื่อคลิกปุ่ม ระดับสูง... ในกล่องโต้ตอบคุณสมบัติเป้าหมาย

###### กล่องโต้ตอบคุณสมบัติเป้าหมาย

กล่องโต้ตอบคุณสมบัติเป้าหมาย

- การตั้งค่าคอมไพเลอร์: ตั้งค่าแฟล็กเฉพาะสำหรับคอมไพเลอร์ที่นี่ จะมีช่องข้อมูลแยกกันสำหรับคอมไพเลอร์ชนิดต่าง ๆ แฟล็กที่สามารถตั้งค่าในช่องเหล่านี้ จะขึ้นอยู่กับคอมไพเลอร์จริงที่ใช้ คอมไพเลอร์ปริยายสำหรับ C/C++ คือ gcc/g++ (GNU C Compiler) ตรวจสอบรายละเอียดเพิ่มเติมได้จาก เอกสาร info ของ gcc

- แฟล็กของลิงเกอร์: ตั้งค่าแฟล็กของลิงเกอร์ที่จะใช้เมื่อลิงก์เป้าหมาย แฟล็กนี้จะมีผลกับเป้าหมายที่เป็นโปรแกรมและไลบรารีเท่านั้น ดูตัวเลือกลิงเกอร์ทั้งหมดได้จาก เอกสาร info ของ ld

- ไลบรารี: กำหนดไลบรารีที่เป้าหมายต้องใช้

## การประกอบสร้าง

แอนจูตาจะจัดการโครงการ autotools เป็นหลัก แม้จะสามารถจัดการกับโครงการชนิดอื่น ๆ เช่น โครงการที่ผู้ใช้เขียน Makefile เองได้ แต่ส่วนติดต่อสำหรับประกอบสร้างโครงการในปัจจุบันจะมุ่งไปที่โครงการ autotools ความรู้บางอย่างเกี่ยวกับ autotools จึงมีประโยชน์ในการทำความเข้าใจวิธีการที่โครงการถูกประกอบสร้าง

โครงการ autotools จะแบ่งการประกอบสร้างเป็น 3 ขั้นตอน:

1. สร้าง

2. ตั้งค่า

3. ประกอบสร้าง

ประกอบสร้าง เป็นขั้นตอนหลักที่ทุกแฟ้มเป้าหมายจะถูกสร้างจากแฟ้มซอร์ส ขั้นตอนนี้สามารถแบ่งออกเป็นสองขั้นตอนย่อย คือ คอมไพล์ และ ลิงก์ ในขั้น คอมไพล์ นั้น แฟ้มอ็อบเจกต์แต่ละแฟ้มจะถูกสร้างจากซอร์ส เช่น แฟ้มซอร์ส `hello.c` จะสร้าง `hello.o` หลังจากคอมไพล์เสร็จ โดยปกติแล้ว คุณไม่จำเป็นต้องกังวลเกี่ยวกับแฟ้มอ็อบเจกต์เหล่านี้ — เพียงแค่คิดว่าเป็นแฟ้มระหว่างทางก็พอ ส่วนในขั้น ลิงก์ แฟ้มอ็อบเจกต์และไลบรารีทั้งหมดจะถูกลิงก์เข้าด้วยกันเพื่อสร้างเป็นแฟ้มโปรแกรมสุดท้าย ภาษาโปรแกรมบางภาษาไม่จำเป็นต้องมีขั้นตอน คอมไพล์ และ ลิงก์ นอกจากนี้ ขั้นตอน ประกอบสร้าง อาจถูกใช้สร้างแฟ้มอื่น ๆ เช่น แฟ้มเอกสาร ซึ่งไม่จำเป็นต้องใช้ขั้นตอนดังกล่าว

ตั้งค่า เป็นขั้นตอนที่ไดเรกทอรีของซอร์สถูกปรับให้เข้ากับระบบของคุณ โครงการ autotools สามารถประกอบสร้างในระบบต่าง ๆ ได้หลากหลาย โดยใช้คอมไพเลอร์ที่แตกต่างกันและมีฟังก์ชันในไลบรารีต่างกัน ขั้นตอนนี้จะเรียกสคริปต์ชื่อ `configure` ซึ่งจะตรวจสอบคุณลักษณะต่าง ๆ ของระบบของคุณ และสร้างแฟ้มบางแฟ้มที่จำเป็นในการประกอบสร้าง (เช่น `Makefile` และ `config h.`) ขั้นตอนนี้จะใช้ในการเลือกตัวเลือกของการประกอบสร้างด้วย เช่น อาจมีตัวเลือกของการประกอบสร้างที่ปิดการปรับประสิทธิภาพของโค้ด เพื่อให้ดีบั๊กได้ง่ายขึ้น หรืออาจมีตัวเลือกที่ปิดส่วนของโปรแกรมที่ยังอยู่ในระหว่างการทดลอง

สร้าง เป็นขั้นตอนที่สคริปต์ `configure` และแฟ้มอื่น ๆ ที่เกี่ยวข้องจะถูกสร้าง สคริปต์ `configure` ที่ใช้ข้างต้นนั้น จำเป็นต้องทำงานในระบบต่าง ๆ ที่หลากหลาย และมีการตรวจสอบจำนวนมาก จึงค่อนข้างยากที่จะเขียนขึ้นด้วยมือ นอกจากนี้ autotools ยังบังคับโครงสร้างองค์ประกอบบางอย่างของโครงการ เช่น ต้องมีแฟ้มบังคับบางแฟ้ม คือ `NEWS` และ `COPYING` เป็นต้น จึงมีเครื่องมือต่าง ๆ สำหรับสร้างแฟ้มที่จำเป็นจากแฟ้มที่ง่ายกว่าที่เขียนขึ้นโดยนักพัฒนา เช่น `configure.in` (หรือ `configure.ac`) และ `Makefile.am` เครื่องมือเหล่านี้มักจะถูกเรียกจากสคริปต์ชื่อ `autogen.sh` ในไดเรกทอรีโครงการ ขั้นตอนนี้จะมีประโยชน์สำหรับนักพัฒนา (คนที่แก้ไขแฟ้มซอร์สดังกล่าว) เท่านั้น เพราะสคริปต์ `configure` จะอาศัยแฟ้มซอร์สเท่านั้นในการสร้าง และจะแจกจ่ายมาในแพกเกจโครงการอยู่แล้ว และสังเกตว่า Makefile ต่าง ๆ ที่สร้างโดย configure จะมีกฎบางอย่างสำหรับสร้างโครงการซ้ำใหม่โดยอัตโนมัติเมื่อต้องการอยู่แล้ว จึงมักจะไม่จำเป็นต้องไปเรียกซ้ำเองโดยตรง

อ่านรายละเอียดเพิ่มเติมเกี่ยวกับการทำงานของเครื่องมือเหล่านี้ได้จากหน้า info ของ automake และ autoconf

### สร้างและตั้งค่า

#### ตั้งค่าโครงการ

คุณต้องทำขั้นตอนนี้ก่อน จึงจะสามารถประกอบสร้างโครงการของคุณได้ ขั้นตอนนี้มักจะทำเพียงครั้งเดียวในช่วงเริ่มต้นของการประกอบสร้างครั้งแรก — เช่น หลังจากที่คุณได้แตกซอร์สจากแฟ้มทาร์ที่แจกจ่ายของโครงการ หลังจากนั้น การตั้งค่าจะถูกจัดการโดยอัตโนมัติในการประกอบสร้างครั้งถัด ๆ ไป และถ้าคุณได้ใช้ เครื่องมือวิเศษสร้างโปรแกรม เพื่อสร้างโปรแกรมแล้ว คุณจะไม่ต้องแยกทำขั้นนี้เลย เครื่องมือวิเศษจะทำให้ โดยเป็นส่วนหนึ่งของกระบวนการสร้างโครงการ

ไม่จำเป็นว่าจะต้องเรียกคำสั่งนี้เพียงครั้งเดียว คุณสามารถเรียกได้ทุกเวลา ซึ่งโดยปกติมักเรียกเมื่อต้องเปลี่ยนตัวเลือกของการตั้งค่า สิ่งหนึ่งที่ควรทราบก็คือ ถ้าแฟ้ม `config.h` ในไดเรกทอรีระดับบนมีการเปลี่ยนแปลง การเรียก `configure` ซ้ำจะไม่เขียนทับแฟ้มดังกล่าว

ทั้งขั้นตอนสร้างและตั้งค่าโครงการ จะเรียกด้วยเมนูเดียวกัน คือ ประกอบสร้าง ตั้งค่าโครงการ... ซึ่งจะเปิดกล่องโต้ตอบที่คุณสามารถเลือกสิ่งต่อไปนี้ได้:

- เลือกว่าคุณต้องการทำขั้นตอนสร้างโครงการหรือไม่

  ขั้นตอนสร้างโครงการต้องทำหนึ่งครั้งเมื่อเริ่มต้นโครงการ จากนั้นจะถูกจัดการโดยอัตโนมัติโดยกระบวนการประกอบสร้าง คุณสามารถบังคับให้ทำขั้นตอนนี้ซ้ำได้ โดยกากล่องกา สร้างโครงการซ้ำ คุณอาจทำเช่นนี้หากคุณพบปัญหายุ่งยากในขณะประกอบสร้างโครงการ (เช่น ได้รับรายงานข้อผิดพลาดเกี่ยวกับการประกอบสร้าง หลังจากที่ได้ปรับเปลี่ยนแฟ้มที่เกี่ยวกับการประกอบสร้างไปมากมาย)

- ชื่อของค่าตั้ง

  ชื่อนี้จะใช้เพื่ออ้างถึงการตั้งค่าแต่ละแบบ ค่าตั้งบางแบบ (ปริยาย, ดีบั๊ก, ปรับประสิทธิภาพ) จะมีการกำหนดไว้แล้วโดยปริยาย ค่าตั้งแบบหนึ่ง ๆ จะประกอบด้วยไดเรกทอรีสำหรับประกอบสร้าง และตัวเลือกบางตัวสำหรับการตั้งค่าโครงการ

- ไดเรกทอรีสำหรับประกอบสร้าง

  เป็นชื่อไดเรกทอรีสำหรับใช้ประกอบสร้าง ในการตั้งค่าแบบปริยาย จะเป็นไดเรกทอรีเดียวกับไดเรกทอรีซอร์ส แต่ autotools รองรับการประกอบสร้างในไดเรกทอรีอื่นด้วย

  ค่าตั้งแต่ละแบบต้องมีไดเรกทอรีสำหรับประกอบสร้างที่ต่างกัน และถ้ามีค่าตั้งแบบใดแบบหนึ่งใช้ไดเรกทอรีซอร์สแล้ว คุณจะไม่สามารถตั้งค่าแบบอื่น ๆ ได้ในเวลาเดียวกัน คุณจะต้องเรียก ประกอบสร้าง ลบค่าตั้ง กับค่าตั้งแบบที่ใช้ไดเรกทอรีซอร์ส ก่อนที่จะเพิ่มค่าตั้งแบบใหม่

- ตัวเลือกสำหรับตั้งค่า

  ตัวเลือกเหล่านี้จะถูกส่งผ่านไปให้สคริปต์ `configure` ตัวเลือกบางตัวเป็นตัวเลือกมาตรฐานเช่น --prefix และ CFLAGS ตัวเลือกอื่น ๆ จะขึ้นอยู่กับโครงการ คุณสามารถขอดูรายชื่อตัวเลือกสำหรับการตั้งค่าทั้งหมดที่มีได้ โดยเรียกสคริปต์ `configure` ด้วยอาร์กิวเมนต์ `-help`

#### เลือกค่าตั้ง

ถ้าคุณได้สร้างค่าตั้งแบบต่าง ๆ ไว้ คุณสามารถเลือกแบบที่จะใช้งานได้ในเมนู ประกอบสร้าง เลือกค่าตั้ง

#### ล้างค่าตั้ง

การเก็บกวาดโครงการให้กลับสู่สถานะที่ต้องทำขั้นตอนตั้งค่าใหม่ ทำได้โดยเลือก ประกอบสร้าง ลบค่าตั้ง จะเป็นการเรียก `make distclean` ซึ่งจะลบแฟ้มเกลี้ยงกว่า เก็บกวาดโครงการ พูดง่าย ๆ ก็คือ ทำให้โครงการเสมือนกับเพิ่งแตกจากแฟ้มทาร์มาใหม่ ๆ สังเกตว่านี่ยังไม่ได้ลบไดเรกทอรีที่ตั้งค่าไว้ คุณสามารถลบเองได้ถ้าต้องการ

### คอมไพล์และประกอบสร้าง

#### การคอมไพล์แฟ้ม

ในโครงการหนึ่ง ๆ แฟ้มซอร์สแต่ละแฟ้มสามารถแยกคอมไพล์เป็นแฟ้มอ็อบเจกต์ (`*.o`) ได้ แม้ว่าคุณไม่จำเป็นต้องกังวลเกี่ยวกับแฟ้มอ็อบเจกต์เหล่านี้ แต่บางครั้งการคอมไพล์แฟ้มเดียวก่อนก็สะดวกกว่า (เช่น เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดทางไวยากรณ์) การประกอบสร้างโครงการทั้งโครงการอาจกินเวลานาน โดยเฉพาะในกรณีของโปรแกรมที่มีขนาดใหญ่และซับซ้อนมาก ๆ ดังนั้น คุณจึงอาจใช้วิธีวนแก้ไขและคอมไพล์ไปเรื่อย ๆ ในระหว่างพัฒนาโครงการ

การคอมไพล์แฟ้ม ทำได้โดยเลือกรายการเมนู ประกอบสร้าง คอมไพล์ หรือกด F11 ซึ่งจะคอมไพล์แฟ้มที่ทำงานอยู่

#### การประกอบสร้างแฟ้มโปรแกรม

แอนจูตา ไม่มีคำสั่งลิงก์แยกต่างหาก ด้วยเหตุผลง่าย ๆ คือ มันไม่จำเป็น กระบวนการประกอบสร้างจะคอมไพล์แฟ้มซอร์สทั้งหมด แล้วลิงก์เข้าด้วยกันพร้อมกับไลบรารีที่จำเป็น โดยคำสั่งประกอบสร้างจะไม่คอมไพล์แฟ้มที่อ็อบเจกต์ทันแฟ้มซอร์สอยู่แล้วซ้ำอีก (เรียกว่า การตรวจสอบความขึ้นต่อกัน) ถ้าคุณได้แยกคอมไพล์แฟ้มทั้งหมดเรียบร้อยแล้ว สิ่งที่ขั้นตอนประกอบสร้างจะทำก็คือการลิงก์เท่านั้น และถ้าคุณได้ประกอบสร้างโครงการไปเรียบร้อยแล้ว โดยไม่ได้มีการเปลี่ยนแปลงแฟ้มซอร์สใด ๆ แม้แต่ขั้นตอนการลิงก์ก็จะถูกข้ามไป

แล้วการตรวจสอบความขึ้นต่อกันดังกล่าวมีผลจริง ๆ อย่างไรกับการพัฒนาโครงการ? ถ้าคุณเปลี่ยนแปลงแฟ้มใดแฟ้มหนึ่ง แฟ้มซอร์สทั้งหมดที่ขึ้นอยู่กับแฟ้มที่แก้ไขนั้นก็จะถูกคอมไพล์ใหม่ แฟ้มทั้งหมดในโครงการ (ไม่ใช่เฉพาะแฟ้มอ็อบเจกต์และแฟ้มโปรแกรม) จะถูกตรวจสอบความขึ้นต่อกันเหล่านี้ในระหว่างกระบวนการประกอบสร้าง ถ้าพบว่าแฟ้มใดขึ้นอยู่กับแฟ้มอื่นที่มีการเปลี่ยนแปลง แฟ้มนั้นก็จะถูกสร้างใหม่

คุณพอจะนึกภาพออกไหม ว่าชีวิตของคุณ (ในฐานะโปรแกรมเมอร์) จะเป็นอย่างไร ถ้าไม่มีการตรวจสอบความขึ้นต่อกันนี้? ถ้าคุณยังไม่สามารถตอบได้ในตอนนี้ คุณจะพบเองเมื่อคุณเริ่มพัฒนาโครงการขนาดใหญ่!

ประกอบสร้าง ประกอบสร้าง จะประกอบสร้างทุกแฟ้มในไดเรกทอรีของแฟ้มปัจจุบันที่ทำงานอยู่

ประกอบสร้าง ประกอบสร้างโครงการ จะประกอบสร้างทั้งโครงการ — ทุกไดเรกทอรีย่อยจะถูกประกอบสร้างแบบ recursive

### การกระทำอื่น ๆ

#### การสร้างแพกเกจสำหรับการแจกจ่าย

การประกอบสร้างแฟ้มทาร์สำหรับแจกจ่ายของโครงการ ทำได้โดยเลือก ประกอบสร้าง ประกอบสร้างแฟ้มทาร์ จะเป็นการสร้างแฟ้มทาร์ (`*.tar.gz`) ไว้ในไดเรกทอรีระดับบนสุดของโครงการ จากนั้นก็คัดลอกแฟ้มไปยังที่ที่ปลอดภัยสำหรับการแจกจ่าย

#### การติดตั้งโครงการ

เลือกเมนู ประกอบสร้าง ติดตั้ง จะติดตั้งโปรแกรมที่สร้างขึ้นลงในระบบของคุณ

##### การติดตั้งเพื่อใช้ทั้งระบบ

คุณต้องเข้าสู่ระบบเป็น root เพื่อจะติดตั้งแบบใช้ทั้งระบบ สังเกตด้วยว่าการที่โปรแกรม GNOME จะใช้ pixmap ในโครงการได้ จะต้องติดตั้งเป็นโปรแกรมแบบใช้ทั้งระบบ มิฉะนั้น เมื่อโปรแกรมทำงานในโครงการของคุณ จะมีข้อผิดพลาด "ไม่พบ pixmap" จำนวนมาก คุณสามารถตั้งค่าแอนจูตาให้ใช้ `sudo` หรือ `su` ก่อนติดตั้งโครงการได้ในการปรับแต่งค่าการประกอบสร้าง

#### การเก็บกวาด

นี่เป็นการลบแฟ้มทั้งหมดที่สร้างขึ้นจากกระบวนการประกอบสร้าง รวมถึงแฟ้มอ็อบเจกต์ทั้งหมด (`*.o`) และแฟ้มโปรแกรม สามารถเก็บกวาดเพียงไดเรกทอรีเดียวหรือทั้งโครงการก็ได้

เลือกเมนู ประกอบสร้าง เก็บกวาดโครงการ ถ้าต้องการเก็บกวาดแฟ้มทั้งหมดในโครงการ

เลือกเมนู ประกอบสร้าง เก็บกวาด ถ้าต้องการเก็บกวาดเฉพาะไดเรกทอรีของแฟ้มปัจจุบันที่ทำงานอยู่เท่านั้น

## การดีบั๊ก

ดีบั๊กเป็นมนุษย์ แก้บั๊กเป็นเทพเจ้า...

ส่วนของ มนุษย์ คือสิ่งที่หัวข้อนี้พูดถึง แต่ส่วนของ เทพเจ้า นั้นขึ้นอยู่กับคุณ!

เมื่อโปรแกรมไม่ประพฤติตามที่ควรจะเป็น เราเรียกว่าโปรแกรมนั้นมี บั๊ก บั๊กไม่ใช่ข้อผิดพลาดของการคอมไพล์ — ข้อผิดพลาดของการคอมไพล์นั้นแก้ง่าย เพราะคอมไพเลอร์จะบอกจุดที่เป็นปัญหาให้ แต่สำหรับบั๊กแล้ว เป็นข้อผิดพลาดที่เกิดขึ้นระหว่างการทำงานของโปรแกรม และตรวจพบได้ยาก (บางครั้งยากมาก!)

โปรแกรมใดก็ตามที่คุณคิดว่าปลอดบั๊กจะไม่เคยปลอดบั๊กอย่างแท้จริง สิ่งที่เราทำได้คือลดจำนวนบั๊กที่มีอยู่ในโปรแกรม กระบวนการเอาบั๊กออกเรียกกันว่า การดีบั๊ก และเครื่องมือที่ใช้สำหรับการดีบั๊กก็เรียกว่า โปรแกรมดีบั๊ก แอนจูตา มีสภาพแวดล้อมสำหรับการดีบั๊กที่เป็นมิตรกับผู้ใช้และมีประสิทธิภาพ (ที่จริงแล้ว ก็เป็น GUI ครอบบน gdb ซึ่งเป็นเครื่องมือดีบั๊กแบบบรรทัดคำสั่งที่ทรงพลัง และเป็นมาตรฐานในลินุกซ์)

โปรแกรมดีบั๊กจะติดตามและแกะรอยการทำงานของโปรแกรม และให้มุมมองต่าง ๆ ของข้อมูลที่จำเป็นในการศึกษาการทำงานของโปรแกรม

### การเริ่มต้นและหยุด

โปรแกรมดีบั๊กจะเริ่มทำงานโดยมีโปรแกรมโหลดอยู่ด้วยเสมอ ซึ่งทำได้สองวิธี:

- การเรียกทำงานแฟ้มโปรแกรม

- การแนบกับโพรเซส

ความสามารถเกือบทุกอย่างของแอนจูตาจะมาในรูปของปลั๊กอิน ถ้าคุณไม่เห็นเมนูที่อธิบายที่นี่ ก็อาจเป็นเพราะยังไม่ได้โหลดปลั๊กอินโปรแกรมดีบั๊ก ไปที่เมนู แก้ไข ปรับแต่ง ทั่วไป ปลั๊กอินที่ติดตั้งไว้ แล้วตรวจสอบว่าปลั๊กอินของโปรแกรมดีบั๊กถูกโหลดอยู่หรือไม่ ปลั๊กอินนี้เป็นปลั๊กอินที่ให้ผู้ใช้เลือกเปิดใช้ได้ จึงโหลดหรือถอนได้ตามสั่ง

#### การเรียกทำงานแฟ้มโปรแกรม

การเรียกโปรแกรมทำงานโดยมีหรือไม่มีโปรแกรมดีบั๊กก็ใช้เมนูเดียวกัน คือ เลือกเมนู เรียกทำงาน เรียกทำงาน เพื่อเรียกโปรแกรมโดยไม่มีโปรแกรมดีบั๊ก และ เรียกทำงาน ดีบั๊กโปรแกรม เพื่อเรียกโปรแกรมพร้อมโปรแกรมดีบั๊ก

เพื่อการใช้โปรแกรมดีบั๊กที่ดีกว่า ขอแนะนำให้คุณประกอบสร้างโปรแกรมของคุณแบบมีข้อมูลดีบั๊ก (-g สำหรับ gcc) และไม่ต้องปรับประสิทธิภาพ (-O0 สำหรับ gcc) ซึ่งสามารถทำได้โดยเลือกค่าตั้งแบบดีบั๊กก่อนประกอบสร้างโปรแกรมครั้งแรก

คุณสามารถเลือกโปรแกรมที่จะเรียกทำงาน พร้อมกับกำหนดตัวแปรสภาพแวดล้อมได้ โดยใช้เมนู เรียกทำงาน พารามิเตอร์ของโปรแกรม… คุณสามารถเลือกสิ่งต่อไปนี้ได้:

- โปรแกรมที่คุณต้องการดีบั๊ก

  เมนูดึงลงของกล่องคอมโบกำหนดโปรแกรมเป้าหมาย จะถูกเติมล่วงหน้าด้วยแฟ้มโปรแกรมทั้งหมดของโครงการปัจจุบัน แต่คุณสามารถเลือกแฟ้มโปรแกรมอื่นที่ไม่ได้อยู่ในโครงการได้ โปรแกรมดีบั๊กยังรับแฟ้มโปรแกรมของ libtool ซึ่งเป็นสคริปต์ที่สร้างโดย libtool เพื่อครอบแฟ้มโปรแกรมจริงอีกด้วย

- พารามิเตอร์บรรทัดคำสั่ง

- ไดเรกทอรีทำงาน

- ตัวแปรสภาพแวดล้อม

  ตัวแปรสภาพแวดล้อมที่แสดงเป็นสีเทาอ่อนคือตัวแปรสภาพแวดล้อมปัจจุบัน คุณสามารถเพิ่ม แก้ไข หรือลบตัวแปรสภาพแวดล้อมต่าง ๆ ได้ที่นี่

  ถ้าต้องการดีบั๊กแอนจูตาด้วยแอนจูตา คุณสามารถใช้ชุดตกแต่งอื่นเพื่อเปลี่ยนหน้าตาของโปรแกรมตัวที่จะดีบั๊กได้ ตัวอย่างเช่น คุณสามารถเพิ่ม "GTK2_RC_FILES=usr/share/themes/Crux/gtk-2.0/gtkrc" ได้

- เลือกว่าโปรแกรมจะทำงานในเทอร์มินัลหรือไม่ ถ้าใช่ ก็จะใช้ปลั๊กอินเทอร์มินัลของแอนจูตา

#### การแนบกับโพรเซส

เป็นไปได้ที่คุณจะแนบเข้ากับโพรเซสที่กำลังทำงานอยู่และดีบั๊กตัวโพรเซสนั้น โดยเลือกเมนู เรียกทำงาน ดีบั๊กโพรเซส… จะปรากฏรายชื่อทุกโพรเซสที่กำลังทำงานอยู่ในระบบ

##### กล่องโต้ตอบ "แนบกับโพรเซส"

กล่องโต้ตอบ "แนบกับโพรเซส"

เลือกโพรเซสที่จะแนบแล้วคลิก แนบ เพื่อเริ่มโปรแกรมดีบั๊ก แนบกับโพรเซสที่เลือก และหยุดโพรเซส

ขณะนี้ ยังไม่สามารถโหลดข้อมูลสัญลักษณ์สำหรับโพรเซสที่แนบได้ โพรเซสควรจะมีข้อมูลสัญลักษณ์มาด้วยในตัว

#### การหยุดโปรแกรมดีบั๊ก

เลือกเมนู เรียกทำงาน หยุดโปรแกรมดีบั๊ก ถ้าต้องการหยุดโปรแกรมดีบั๊ก จะเป็นการฆ่าโปรแกรมที่กำลังดีบั๊กอยู่ แต่ถ้าโปรแกรมดีบั๊กกำลังแนบกับโพรเซสที่ทำงานอยู่ ก็จะแค่แยกตัวออกจากโพรเซสโดยไม่ฆ่าโพรเซส คุณจะพบกล่องโต้ตอบยืนยันถ้ามีโปรแกรมกำลังแนบอยู่หรือกำลังทำงานอยู่

#### การเพิ่มไดเรกทอรีซอร์ส

เลือกเมนู ดีบั๊ก เพิ่มพาธของซอร์ส…menuchoice>

แฟ้มโปรแกรมส่วนใหญ่จะเก็บข้อมูลพาธเต็มของแฟ้มซอร์สอยู่แล้ว การกำหนดไดเรกทอรีที่เก็บแฟ้มซอร์สจึงมักไม่มีประโยชน์ แต่แฟ้มโปรแกรมบางแฟ้มก็เก็บเฉพาะชื่อแฟ้มโดยไม่มีพาธ ในกรณีนี้ โปรแกรมดีบั๊กจะค้นหาแฟ้มซอร์สในไดเรกทอรีเหล่านี้ ลำดับของไดเรกทอรีจะมีความสำคัญถ้ามีหลายแฟ้มที่ชื่อซ้ำกัน ดังนั้นคุณสามารถเปลี่ยนลำดับได้ โดยใช้ปุ่ม ขึ้น และ ลง รายชื่อไดเรกทอรีจะถูกส่งไปยังโปรแกรมดีบั๊กเมื่อเริ่มทำงาน หลังจากเปลี่ยนค่าแล้ว คุณจึงต้องเริ่มโปรแกรมดีบั๊กใหม่ เพื่อให้โปรแกรมเริ่มใช้รายชื่อใหม่

### การเรียกโปรแกรมทำงาน

คุณสามารถควบคุมการทำงานของโปรแกรมในโปรแกรมดีบั๊กได้อย่างละเอียด คุณสามารถสั่งให้โปรแกรมทำงานทีละขั้น หรือให้ทำงานต่อไปจนกว่าจะถึงจุดพัก การสั่งทำงานแบบนี้เป็นสิ่งจำเป็นสำหรับการติดตามการทำงานของโปรแกรม ซึ่งก็คล้ายกับการแก้ไขวีดิทัศน์ โปรแกรมสามารถทำงานแบบ ภาพช้า พร้อมกับสามารถเดินหน้า พัก หยุด และอื่น ๆ ได้ เพียงแต่คุณยังไม่สามารถเดินย้อนกลับได้เท่านั้น

วิธีการที่สามารถใช้สั่งโปรแกรมทำงานในโปรแกรมดีบั๊ก จะได้อธิบายต่อไปในหัวข้อต่อไปนี้ คำสั่งเหล่านี้จะใช้ได้เฉพาะเมื่อโปรแกรมได้เริ่มต้นทำงานไปแล้วเท่านั้น

#### ทำหนึ่งขั้น (ก้าวเข้า)

เลือกเมนู ดีบั๊ก ก้าวเข้า หรือคลิกที่ไอคอน ก้าวเข้า ใน แถบเครื่องมือดีบั๊ก ถ้าต้องการก้าวหนึ่งขั้นเข้าไปในโปรแกรม

การทำงานทีละขั้นจะทำงานเพียงถ้อยแถลงเดียวของโปรแกรมเท่านั้น (นับจากที่ที่มันถูกหยุด) แล้วคืนการควบคุมกลับมา ถ้าถ้อยแถลงที่ทำงานนั้นมีฟังก์ชันตั้งแต่หนึ่งฟังก์ชันขึ้นไป โปรแกรมดีบั๊กจะพยายามก้าวเข้าไปในฟังก์ชันเหล่านั้นตามลำดับ และเมื่อทำงานถ้อยแถลงเสร็จและการควบคุมถูกคืนกลับมา คุณก็สามารถตรวจสอบสถานะของโปรแกรมของคุณได้

ถ้า หน้าต่างถอดแยกภาษาแอสเซมบลี ได้โฟกัสอยู่ขณะที่สั่งคำสั่งนี้ โปรแกรมดีบั๊กก็จะทำงานเพียงคำสั่งแอสเซมบลีคำสั่งเดียว

#### ทำหนึ่งขั้น (ก้าวข้าม)

เลือกเมนู ดีบั๊ก ก้าวข้าม หรือคลิกที่ไอคอน ก้าวข้าม ใน แถบเครื่องมือดีบั๊ก ถ้าต้องการทำข้ามถ้อยแถลงในโปรแกรมไปหนึ่งขั้น

การ ก้าวข้าม ก็คล้ายกับการ ก้าวเข้า ยกเว้นว่าจะไม่มีการก้าวเข้าไปในในฟังก์ชันใด ๆ ในถ้อยแถลงที่ทำงาน ถ้อยแถลงทั้งหมดจะถูกเรียกทำงานในคราวเดียว

ถ้า หน้าต่างถอดแยกภาษาแอสเซมบลี ได้โฟกัสอยู่ขณะที่สั่งคำสั่งนี้ โปรแกรมดีบั๊กก็จะทำงานคำสั่งแอสเซมบลีคำสั่งเดียว แต่จะไม่มีการหยุดอยู่ข้างในถ้าคำสั่งนั้นเป็นการเรียกรูทีนย่อย

ถ้ามีการโหลดไลบรารีแบบไดนามิกในระหว่างการก้าว โปรแกรมจะไม่หยุดเมื่อจบก้าว แต่จะทำงานต่อไปจนกว่าจะพบจุดพักหรือเมื่อคุณสั่งหยุด

#### ทำหนึ่งขั้น (ก้าวออก)

เลือกเมนู ดีบั๊ก ก้าวออก หรือคลิกที่ไอคอน ก้าวออก ใน แถบเครื่องมือดีบั๊ก ถ้าต้องการก้าวออกหนึ่งขั้นในโปรแกรม

การ ก้าวออก จะทำงานฟังก์ชันปัจจุบันจนกว่าจะกลับออกมา และโปรแกรมจะหยุดเมื่อออกจากฟังก์ชัน การก้าวออกไม่ได้เป็นการทำขั้นเดียวจริง ๆ เพราะไม่ได้ทำงานเพียงถ้อยแถลงเดียว — แต่จะทำทั้งฟังก์ชันจนกว่าฟังก์ชันจะกลับคืนไปสู่ฟังก์ชันที่เรียกมา

#### เรียกทำงาน/ทำต่อไป

เลือกเมนู ดีบั๊ก เรียกทำงาน/ทำต่อไป หรือคลิกที่ไอคอน เรียกทำงาน/ทำต่อไป ใน แถบเครื่องมือดีบั๊ก ถ้าต้องการให้โปรแกรมทำงานต่อไป

ตัวเลือกนี้จะดำเนินการทำงานของโปรแกรมต่อไป จนกว่าจะพบจุดพักหรือจบโปรแกรม

#### ทำถึงเคอร์เซอร์

เลือกเมนู ดีบั๊ก ทำถึงเคอร์เซอร์ หรือคลิกที่ไอคอน ทำถึงเคอร์เซอร์ ใน แถบเครื่องมือดีบั๊ก ถ้าต้องการให้โปรแกรมทำงานจนถึงบรรทัดที่เคอร์เซอร์วางอยู่

ตัวเลือกนี้จะดำเนินการทำงานของโปรแกรมต่อไป จนกว่าจะถึงบรรทัดหรือแอดเดรส (ถ้า หน้าต่างถอดแยกภาษาแอสเซมบลี ได้โฟกัสอยู่) ที่เคอร์เซอร์วางอยู่

#### หยุดโปรแกรม

ในระหว่างที่โปรแกรมกำลังทำงานและได้การควบคุมอยู่ จะไม่สามารถทำกิจกรรมดีบั๊กใด ๆ ได้ หากต้องการขอการควบคุมในขณะที่โปรแกรมทำงานอยู่ ก็ทำได้โดยเลือกเมนู ดีบั๊ก พักโปรแกรม หรือคลิกที่ไอคอน พักโปรแกรม ใน แถบเครื่องมือดีบั๊ก จะเป็นการขัดจังหวะโปรแกรมและคืนการควบคุมให้กับโปรแกรมดีบั๊ก

### จุดพัก

เมื่อดีบั๊กโปรแกรม จะเป็นประโยชน์ถ้าสามารถหยุดการทำงานของโปรแกรมที่จุดใด ๆ ที่ต้องการ เพื่อที่จะสามารถตรวจสอบสถานะของโปรแกรมได้ที่ตำแหน่งนั้นได้ จุดพักจะช่วยให้ทำเช่นนั้นได้ คุณสามารถกำหนดจุดพักที่ตำแหน่งต่าง ๆ ในแฟ้มซอร์ส แล้วก็สั่งโปรแกรมทำงานได้ เมื่อโปรแกรมพบจุดพัก การทำงานของโปรแกรมจะถูกหยุดไว้ ทำให้สามารถคำนวณค่านิพจน์ต่าง ๆ ตรวจดูตัวแปรต่าง ๆ ตรวจสอบร่องรอยสแต็ก และอื่น ๆ ได้

#### การแสดงรายชื่อจุดพัก

หน้าต่างรายชื่อจุดพัก สามารถเปิดได้ไดยเลือกเมนู มุมมอง จุดพัก

##### มุมมองจุดพัก

มุมมองจุดพัก

มุมมองนี้มีคอลัมน์ต่อไปนี้:

ตำแหน่ง

  เป็นตำแหน่งของจุดพักในแฟ้มซอร์ส เมื่อจุดพักถูกกำหนดโดยโปรแกรมดีบั๊ก คุณสามารถขอดูข้อมูลเพิ่มเติมได้ เช่น ฟังก์ชันที่เป็นที่อยู่ของจุดพัก

แอดเดรส

  เขตข้อมูลนี้จะถูกเติมด้วยแอดเดรสของจุดพักเมื่อมีการกำหนดโดยโปรแกรมดีบั๊ก

ชนิด

  จะแสดงเป็น "จุดพัก" เสมอ เขตข้อมูลนี้จะใช้ในรุ่นที่จะออกมาในอนาคต ที่รองรับการใช้จุดพักประเภทต่าง ๆ

เงื่อนไข

  เป็นเงื่อนไขของจุดพัก จะว่างเปล่าถ้าไม่มีการกำหนดเงื่อนไข

จำนวนครั้งที่ผ่าน

  เมื่อโปรแกรมดีบั๊กไม่ได้ทำงาน คอลัมน์นี้จะแสดงจำนวนครั้งที่ผ่านจุดพัก หรือแสดงค่าศูนย์ถ้าไม่ได้กำหนด

  เมื่อโปรแกรมดีบั๊กทำงาน ถ้าจำนวนครั้งที่ผ่านเป็นศูนย์ คอลัมน์นี้จะแสดงจำนวนครั้งที่จุดพักนี้ถูกกระตุ้น ถ้าจำนวนครั้งที่ผ่านไม่เป็นศูนย์ จะแสดงตัวเลขทั้งสองค่า จำนวนครั้งที่ผ่านจะเป็นค่าที่สอง

สถานะ

  คือสถานะของจุดพัก ค่าที่เป็นไปได้คือ

  - Pending: จุดพักไม่ได้กำหนดในโปรแกรมของคุณ

  - Permanent: จุดพักถูกกำหนดแล้ว (โดยระบุเลข id ในวงเล็บ)

  - Temporary: จุดพักถูกกำหนดไว้ แต่จะถูกลบถ้ามาถึง

จุดพักทั้งหมดจะถูกเก็บข้ามวาระการใช้งานของแอนจูตา แม้ว่าจะตรงกับที่ตำแหน่งไม่มีอยู่ก็ตาม ในกรณีนี้ สถานะของจุดพักจะถูกกำหนดเป็น pending (ค้าง) ส่วนติดต่อผู้ใช้จะพยายามกำหนดค่าให้ทุกครั้งที่มีการเรียกโปรแกรมทำงาน หรือมีการโหลดไลบรารีแบบไดนามิกตัวใหม่

#### การเพิ่มหรือตั้งค่าจุดพัก

เลือกเมนู ดีบั๊ก เพิ่มจุดพัก… หรือรายการ เพิ่มจุดพัก… ในเมนูรายชื่อจุดพักที่ผุดขึ้นเมื่อคลิกขวา เพื่อเปิดกล่องโต้ตอบ เพิ่มจุดพัก

##### กล่องโต้ตอบพิ่มจุดพัก

กล่องโต้ตอบพิ่มจุดพัก

ป้อนตำแหน่ง และอาจป้อนเงื่อนไขการพักและจำนวนครั้งที่ผ่านด้วย แล้วคลิก ตกลง เพื่อกำหนดจุดพัก

ตำแหน่ง

  ป้อนตำแหน่งที่จะกำหนดจุดพัก คุณสามารถระบุได้ในรูปแบบใด ๆ ต่อไปนี้:

  1. ชื่อแฟ้ม:เลขบรรทัด

  2. ชื่อฟังก์ชัน

  3. แฟ้ม:ชื่อฟังก์ชัน

  รูปแบบแรกนั้นชัดเจน คือเป็นตำแหน่งที่อ้างถึงเลขบรรทัด เลขบรรทัด ในแฟ้มซอร์ส แฟ้ม รูปแบบที่สองอ้างถึงบรรทัดแรกของฟังก์ชัน ชื่อฟังก์ชัน รูปแบบที่สามคล้ายกับรูปแบบที่สอง เว้นแต่ว่ารูปแบบนี้ใช้เมื่อมีฟังก์ชันในโปรแกรมมากกว่าหนึ่งฟังก์ชันที่มีชื่อเป็น ชื่อฟังก์ชัน โดยสามารถแยกความแตกต่างระหว่างฟังก์ชันดังกล่าวได้โดยระบุ แฟ้ม เพิ่ม เพื่อให้รูปแบบนี้อ้างถึงฟังก์ชัน ชื่อฟังก์ชัน ในแฟ้ม แฟ้ม

เงื่อนไข

  พารามิเตอร์ เงื่อนไข เป็นนิพจน์ที่กำกับจุดพัก ซึ่งควรจะคำนวณแล้วได้ค่าเป็นบูลีน — กล่าวคือ ผลการคำนวณนิพจน์ควรจะได้ผลลัพธ์เป็น TRUE(1) หรือ FALSE(0) ถ้าผลลัพธ์การคำนวณสุดท้ายไม่ใช่ค่าบูลีน ก็จะมีการคาสต์ให้เป็นบูลีนตามความเหมาะสม

  ทุกครั้งที่พบจุดพักในระหว่างการทำงานของโปรแกรม เงื่อนไขการพักจะถูกคำนวณ โปรแกรมดีบั๊กจะพักการทำงานก็ต่อเมื่อผลการคำนวณค่าเป็น TRUE มิฉะนั้นก็จะทำงานต่อไปเสมือนหนึ่งไม่มีจุดพัก

  ถ้าคุณเว้นข้อมูลนี้ว่างไว้ ค่าปริยายของ เงื่อนไข จะเป็น TRUE โปรแกรมดีบั๊กจะพักการทำงานที่ตำแหน่งจุดพักเสมอ

จำนวนครั้งที่ผ่าน

  จำนวนครั้งที่ผ่าน เป็นจำนวนเต็ม (ไม่มีเครื่องหมาย) ที่บอกโปรแกรมดีบั๊กให้ข้ามจุดพักเป็นจำนวนครั้งเท่านี้ก่อนที่จะพิจารณาจุดพัก จำนวนครั้งที่ผ่าน มีความสำคัญสูงกว่า เงื่อนไขการพัก โปรแกรมดีบั๊กจะประเมิน เงื่อนไขการพัก (ถ้ามี) เฉพาะเมื่อ จำนวนครั้งที่ผ่าน ถูกลดลงเป็นศูนย์เท่านั้น และถ้าไม่มีเงื่อนไข โปรแกรมดีบั๊กจะพักการทำงานทันทีที่ จำนวนครั้งที่ผ่าน เป็นศูนย์

  ถ้าคุณเว้นข้อมูลนี้ว่างไว้ ค่าปริยายของ จำนวนครั้งที่ผ่าน จะเป็นศูนย์ จุดพักจะได้รับการพิจารณาตั้งแต่ถูกพบครั้งแรก

คุณยังอาจกำหนดจุดพักได้โดยเลือกบรรทัดในเครื่องมือแก้ไขแล้วเลือกเมนู ดีบั๊ก สลับจุดพัก หรือเลือกรายการ สลับจุดพัก ในเมนูบริบทของเครื่องมือแก้ไข หรือคลิกที่ไอคอน สลับจุดพัก ใน แถบเครื่องมือดีบั๊ก

คุณสามารถเพิ่มจุดพักได้แม้โปรแกรมดีบั๊กจะยังไม่ได้เริ่มทำงาน หรือแม้แต่ในไลบรารีแบบไดนามิกที่ยังไม่ได้โหลด แต่คุณไม่สามารถเพิ่มจุดพักในขณะที่โปรแกรมกำลังทำงานภายใต้การควบคุมของโปรแกรมดีบั๊กได้

#### การแก้ไขจุดพัก

คุณสามารถเปลี่ยนเงื่อนไขและจำนวนครั้งที่ผ่านของจุดพักได้ โดยเลือกจุดพักในรายชื่อจุดพัก แล้วคลิก แก้ไขจุดพัก ในเมนูที่ผุดขึ้น

แก้ไขรายการตามต้องการ แล้วคลิก ตกลง เพื่อกระทำการเปลี่ยนแปลง

#### การลบจุดพัก

เลือกจุดพักในช่องรายชื่อจุดพัก แล้วเลือก ลบจุดพัก จากเมนูคลิกขวา เพื่อลบจุดพัก

คุณยังอาจลบจุดพักที่มีอยู่ได้โดยเลือกบรรทัดของจุดพักในเครื่องมือแก้ไขแล้วเลือกเมนู ดีบั๊ก สลับจุดพัก หรือเลือก

คุณสามารถลบจุดพักทั้งหมดได้ โดยเลือกเมนู ดีบั๊ก ลบจุดพักทั้งหมด หรือเลือก ลบจุดพักทั้งหมด ในเมนูคลิกขวาในช่องรายชื่อจุดพัก

#### การเปิดหรือปิดใช้งานจุดพัก

คลิกที่คอลัมน์ "เปิดใช้งาน" ของ หน้าต่างรายชื่อจุดพัก หรือเลือกเมนูบริบท เปิดใช้งานจุดพัก เพื่อเปิดหรือปิดใช้งานจุดพักที่เลือก จุดพักจะถูกเปิดหรือปิดใช้งาน ขึ้นอยู่กับสถานะปัจจุบันของจุดพัก

การปิดการใช้งานจุดพักทั้งหมด ทำได้โดยเลือกเมนู ดีบั๊ก ปิดการใช้งานจุดพักทั้งหมด หรือเลือก ปิดการใช้งานจุดพักทั้งหมด ในเมนูคลิกขวาของจุดพัก

### นิพจน์

#### การแสดงรายชื่อตัวแปรเฉพาะที่

เมื่อโปรแกรมทำงานภายใต้การควบคุมของโปรแกรมดีบั๊ก คุณสามารถเปิด หน้าต่างรายชื่อตัวแปรเฉพาะที่ ได้โดยเลือกเมนู มุมมอง ตัวแปรเฉพาะที่

ตัวแปรเฉพาะที่ของเฟรมปัจจุบัน (ฟังก์ชันปัจจุบันที่โปรแกรมทำงานอยู่) จะถูกแสดงใน หน้าต่างตัวแปรเฉพาะที่ และในระหว่างที่โปรแกรมทำงาน (เช่น ระหว่างการทำทีละขั้น) ตัวแปรเฉพาะที่จะมีการปรับข้อมูลตามด้วย ถ้ามีค่าตัวแปรใดเปลี่ยนแปลงในขั้นตอนที่ดีบั๊กล่าสุด ตัวแปรนั้นก็จะถูกเน้นค่าเป็นสีแดง การแสดงตัวแปรต่าง ๆ จะอยู่ในรูปแผนภาพต้นไม้ เพื่อให้ดูได้ง่าย

##### ตัวแปรเฉพาะที่

ตัวแปรเฉพาะที่

ค่าของตัวแปรเฉพาะที่สามารถปรับเปลี่ยนได้ โดยเลือกตัวแปรแล้วคลิกที่คอลัมน์ ค่า

gdb เริ่มถูกใช้เป็นแบ็กเอนด์สำหรับฟรอนต์เอนด์แบบกราฟิกมากขึ้นเรื่อย ๆ และได้รับการปรับปรุงการทำงานส่วนนี้ในรุ่นหลัง ๆ จึงขอแนะนำให้คุณใช้ gdb รุ่นล่าสุด (6.6) เนื่องจากในรุ่นเก่ากว่านั้น gdb อาจพังเมื่อฟรอนต์เอนด์ถามค่าตัวชี้ที่มีค่าไม่ถูกต้อง (แต่ไม่ได้ใช้)

#### การแสดงรายชื่อนิพจน์ที่เฝ้าดู

การตรวจสอบหรือประมวลผลนิพจน์จะให้ผลลัพธ์เพียงครั้งเดียวเท่านั้น หากต้องการเฝ้าสังเกตตัวแปรหรือนิพจน์อย่างต่อเนื่อง ก็ทำได้โดยใช้ การเฝ้าดูนิพจน์

เลือกเมนู มุมมอง เฝ้าดู เพื่อแสดง หน้าต่างเฝ้าดู

#### การเพิ่มนิพจน์ที่จะเฝ้าดู

คลิกขวาใน หน้าต่างเฝ้าดู เพื่อเปิดเมนูบริบท แล้วเลือกรายการเมนู เพิ่มการเฝ้าดู… หรืออีกวิธีหนึ่ง คุณสามารถใช้เมนู ดีบั๊ก เพิ่มการเฝ้าดู… ก็ได้ จะปรากฏกล่องโต้ตอบถามนิพจน์ คุณก็ป้อนนิพจน์แล้วคลิก ตกลง

โดยปกติ นิพจน์เฝ้าดูจะถูกปรับข้อมูลโดยอัตโนมัติทุกครั้งที่โปรแกรมถูกหยุด แต่พฤติกรรมนี้สามารถเปลี่ยนได้ในกล่องโต้ตอบเพิ่มการเฝ้าดู หรือเปลี่ยนในภายหลังได้โดยใช้รายการเมนู ปรับข้อมูลอัตโนมัติ ในเมนูบริบทของ หน้าต่างเฝ้าดู คุณสามารถสั่งปรับข้อมูลนิพจน์ที่เฝ้าดูด้วยมือได้ โดยเลือก ปรับข้อมูลการเฝ้าดู หรือ ปรับข้อมูลทั้งหมด ในเมนูบริบท

ไม่จำเป็นว่าจะต้องให้โปรแกรมดีบั๊กทำงาน จึงจะเพิ่มนิพจน์เฝ้าดูใหม่ได้ ถ้าโปรแกรมดีบั๊กไม่ได้ทำงานอยู่ หรือไม่สามารถหาค่านิพจน์ได้ ตัวฟรอนต์เอนด์จะพยายามสร้างนิพจน์เฝ้าดูให้ทุกครั้งที่โปรแกรมถูกหยุด

#### การลบนิพจน์ที่เฝ้าดู

คลิกขวาที่นิพจน์เฝ้าดูที่คุณต้องการลบใน หน้าต่างเฝ้าดู แล้วเลือกรายเมนู ลบการเฝ้าดู ในเมนูบริบทเพื่อลบออก

คุณสามารถลบการเฝ้าดูทั้งหมดออกได้ โดยเลือก ลบทั้งหมด ในเมนูบริบทของ หน้าต่างเฝ้าดู

#### การประมวลผลนิพจน์

เมื่อการควบคุมกลับคืนมาจากโปรแกรม — อาจจะที่จุดพัก — ก็จะสามารถประมวลผลนิพจน์หรือตรวจสอบค่าของตัวแปรในโปรแกรมได้ โดยเลือกเมนู ดีบั๊ก ตรวจสอบ/ประมวลผล … หรือเลือกรายการ ตรวจสอบ/ประมวลผล … ในเมนูบริบทของเครื่องมือแก้ไข หรือคลิกที่ปุ่ม ตรวจสอบ ใน แถบเครื่องมือดีบั๊ก

จะปรากฏหน้าต่างแสดงการประมวลผลนิพจน์ที่ถูกเน้นในเครื่องมือแก้ไข คุณสามารถประมวลผลนิพจน์รายการใหม่ได้ โดยคลิกที่คอลัมน์ ตัวแปร แล้วป้อนนิพจน์ใหม่

คุณสามารถเพิ่มนิพจน์ในหน้าต่างเข้าในรายชื่อนิพจน์ที่เฝ้าดูได้โดยตรง โดยคลิกที่ปุ่ม เพิ่ม

#### การตรวจสอบนิพจน์ในหน้าต่างเครื่องมือแก้ไข

เมื่อโปรแกรมดีบั๊กทำงานโดยที่โปรแกรมถูกหยุดอยู่ คุณสามารถดูค่านิพจน์ได้โดยเพียงวางตัวชี้เมาส์แช่บนตัวนิพจน์ ภายในครู่สั้น ๆ ถ้านิพจน์แสดงอยู่แล้วในหน้าต่าง ตัวแปรเฉพาะที่ หรือ เฝ้าดู ค่าของนิพจน์ก็จะปรากฏในคำแนะนำเครื่องมือ

ขณะนี้ ความสามารถนี้ใช้ได้เฉพาะกับตัวแปรง่าย ๆ เท่านั้น ยังไม่สามารถใช้กับโครงสร้างหรือแอร์เรย์ได้

### การแกะรอยสแต็ก

#### หน้าต่างสแต็ก

หน้าต่างแกะรอยสแต็ก แสดงเนื้อหาของสแต็กของโปรแกรม โดยจะแสดงฟังก์ชันทั้งหมดตามลำดับการเรียกพร้อมอาร์กิวเมนต์ และจะมีหมายเลขแทนการเรียกแต่ละครั้ง หมายเลขนี้เรียกว่า เฟรม การเรียกแต่ละครั้งในร่องรอยจะอยู่ในเฟรมที่ต่างกัน โดยเริ่มจากเฟรม 0 (ฟังก์ชันสุดท้ายที่ถูกเรียก) และจะเพิ่มขึ้นตามลำดับความลึกของการเรียกฟังก์ชันซ้อน

เลือกเมนู มุมมอง สแต็ก ถ้าต้องการเปิดดูร่องรอยสแต็กของโปรแกรมที่กำลังดีบั๊ก

##### หน้าต่างแกะรอยสแต็ก

หน้าต่างแกะรอยสแต็ก

ลูกศรขนาดเล็กจะชี้ไปยังเฟรมปัจจุบันที่เลือกอยู่ในร่องรอยสแต็ก ซึ่งโดยค่าปริยายจะเป็นเฟรม 0 คือฟังก์ชันสุดท้ายที่เรียก การประมวลผลและตรวจสอบค่านิพจน์หรือตัวแปรจะอ้างอิงจากเฟรมที่เลือกนี้ ขอบเขตของตัวแปรหรือนิพจน์ที่นำมาประมวลผลก็จะถูกจำกัดอยู่เฉพาะในเฟรมที่เลือกเท่านั้น รวมทั้งกับนิพจน์ใหม่ในช่องเฝ้าดูด้วย

#### การกำหนดเฟรมปัจจุบัน

การดับเบิลคลิกที่เฟรมใด ๆ ในร่องรอยสแต็ก จะเป็นการกำหนดให้เฟรมนั้นเป็นเฟรมปัจจุบันที่เลือก ลูกศรจะชี้ไปที่เฟรมนั้น เพื่อระบุว่าเป็นเฟรมปัจจุบันที่ถูกเลือก อีกวิธีหนึ่งคือ เปิดเมนูบริบทโดยคลิกขวาบน หน้าต่างแกะรอยสแต็ก และเลือกรายการเมนู กำหนดเฟรมปัจจุบัน เพื่อกำหนดเฟรม

การเปลี่ยนเฟรมในสแต็กจะเปลี่ยนเนื้อหา หน้าต่างตัวแปรเฉพาะที่ แต่จะไม่เปลี่ยน หน้าต่างเฝ้าดู เพราะนิพจน์แต่ละนิพจน์จะถูกประมวลผลในเฟรมที่ใช้ในขณะที่ตัวนิพจน์ถูกกำหนด

### เธรด

#### หน้าต่างเธรด

หน้าต่างเธรด จะแสดงเธรดทั้งหมดที่โปรแกรมใช้ โดยบ่งบอกเธรดปัจจุบันไว้ด้วย เลือกเมนู มุมมอง เธรด ถ้าต้องการเปิดหน้าต่างนี้

จะมีลูกศรขนาดเล็กชี้ที่เธรดปัจจุบัน เมื่อโปรแกรมหยุด เธรดปัจจุบันจะเป็นเธรดที่ถูกขัดจังหวะ แต่ละเธรดจะมีเฟรมของสแต็กเป็นของตัวเอง ดังนั้น การเปลี่ยนเธรดปัจจุบันจึงเป็นการเปลี่ยนเฟรมปัจจุบันของสแต็กด้วย

#### การกำหนดเธรดปัจจุบัน

การดับเบิลคลิกที่เธรดใดในรายชื่อเธรด จะเป็นการกำหนดเธรดนั้นให้เป็นเธรดปัจจุบันที่เลือก ลูกศรจะชี้ที่เธรดเพื่อระบุว่าถูกเลือกเป็นเธรดปัจจุบันอยู่ หรืออีกวิธีหนึ่ง เปิดเมนูบริบทโดยคลิกขวาใน หน้าต่างรายชื่อเธรด แล้วเลือกรายการเมนู กำหนดเธรดปัจจุบัน เพื่อกำหนดเธรด

การเปลี่ยนเธรดจะเป็นการเปลี่ยนค่าเรจิสเตอร์ของ CPU และเฟรมปัจจุบันของสแต็ก ดังนั้น หน้าต่างตัวแปรเฉพาะที่ ก็จะเปลี่ยนตามด้วย

### CPU

#### หน้าต่างเรจิสเตอร์

คุณสามารถตรวจสอบค่าของเรจิสเตอร์ภายในของ CPU (ไมโครโพรเซสเซอร์) ได้ โดยเลือกเมนู มุมมอง เรจิสเตอร์ จะปรากฏหน้าต่างรายชื่อเรจิสเตอร์ทั้งหมดในไมโครโพรเซสเซอร์ พร้อมค่าที่เก็บอยู่

ถ้ามีค่าเรจิสเตอร์ใดถูกเปลี่ยนในขั้นตอนการดีบั๊กล่าสุด ก็จะเน้นค่าเป็นสีแดง คุณสามารถเปลี่ยนค่าเรจิสเตอร์ได้ โดยเลือกและคลิกที่คอลัมน์ ค่า

#### หน้าต่างหน่วยความจำ

เลือกเมนู มุมมอง หน่วยความจำ เพื่อเปิด หน้าต่างหน่วยความจำ สำหรับโปรแกรมที่กำลังดีบั๊ก หน้าต่างนี้จะแสดงเนื้อหาของหน่วยความจำทั้งหมด

คอลัมน์แรกจะแสดงแอดเดรสของหน่วยความจำเป็นฐานสิบหก คอลัมน์ที่สองแสดงข้อมูลของหน่วยความจำเป็นฐานสิบหก และคอลัมน์สุดท้ายแสดงข้อมูลของหน่วยความจำเป็นอักขระแอสกี

พื้นที่แอดเดรสแม้แต่ของไมโครโพรเซสเซอร์ 32 บิตก็มีขนาดค่อนข้างใหญ่ (4 กิกะไบต์) จึงเป็นเรื่องยากที่จะไปที่แอดเดรสที่ต้องการด้วยแถบเลื่อนหน้าต่าง แต่คุณสามารถคลิกที่ปุ่มเมาส์ขวาเพื่อแสดงเมนูบริบท แล้วเลือก ไปยังแอดเดรส เพื่อเปิดช่องแก้ไขเล็ก ๆ ที่คุณสามารถป้อนแอดเดรสฐานสิบหกได้

#### หน้าต่างถอดแยกภาษาแอสเซมบลี

เลือกรายการเมนู มุมมอง ถอดแยกภาษาแอสเซมบลี เพื่อเปิด หน้าต่างถอดแยกภาษาแอสเซมบลี สำหรับโปรแกรมที่กำลังดีบั๊ก

คอลัมน์แรกแสดงแอดเดรสเป็นฐานสิบหก ในคอลัมน์ที่สอง อาจเป็นป้ายชื่อเริ่มต้นที่ต้นบรรทัดและปิดด้วยเครื่องหมายทวิภาค (:) หรือเป็นคำสั่งภาษาแอสเซมบลีที่ร่นเข้าไปเป็นระยะช่องว่าง 4 ตัวอักษร

และอีกเช่นกัน เนื่องจากพื้นที่แอดเดรสมีขนาดใหญ่มาก แถบเลื่อนหน้าต่างจึงแทบไม่มีประโยชน์เลย คุณสามารถคลิกที่ปุ่มเมาส์ขวาเพื่อแสดงเมนูบริบท แล้วเลือก ไปยังแอดเดรส เพื่อเปิดช่องแก้ไขเล็ก ๆ ที่คุณสามารถป้อนแอดเดรสฐานสิบหกได้ตำแหน่งในหน้าต่างถอดแยกแอสเซมบลีจะเปลี่ยนไปเป็นค่าของตัวชี้คำสั่งของโปรแกรมเมื่อโปรแกรมหยุด

### อื่น ๆ

ยังมีความสามารถอื่น ๆ จำนวนหนึ่งของโปรแกรมดีบั๊กที่ใช้ไม่บ่อย และยังไม่เชื่อมรวมกับฟรอนต์เอนด์ใหม่ดีนัก แต่ก็ยังใช้การได้

#### ไลบรารีที่โหลดแบบไดนามิก

การเรียกดูรายชื่อของไลบรารีแบบไดนามิกที่โปรแกรมใช้ ทำได้โดยเลือกเมนู ดีบั๊ก ข้อมูล ไลบรารีใช้ร่วม จะเปิดหน้าต่างซึ่งจะแสดงรายชื่อไลบรารีใช้ร่วมทั้งหมดที่โปรแกรมโหลดขึ้นมา พร้อมกับตำแหน่งในหน่วยความจำ และยังแสดงให้ดูด้วยว่าตารางสัญลักษณ์ของแต่ละไลบรารีถูกโหลดด้วยหรือไม่

##### หน้าต่างไลบรารีใช้ร่วม

หน้าต่างไลบรารีใช้ร่วม

#### สัญญาณเคอร์เนล

สัญญาณเคอร์เนลเป็นวิธีหนึ่งในการส่งสัญญาณระหว่างโพรเซสในลินุกซ์ คุณสามารถแสดงรายชื่อของสัญญาณที่ใช้ได้กับโปรแกรมหนึ่ง ๆ ได้ โดยเลือกเมนู ดีบั๊ก ข้อมูล สัญญาณเคอร์เนล จะเปิดหน้าต่างแสดงรายชื่อสัญญาณทั้งหมดที่มีอยู่ในระบบ พร้อมด้วยคำอธิบายสั้น ๆ ของแต่ละสัญญาณ

##### หน้าต่างสัญญาณเคอร์เนล

หน้าต่างสัญญาณเคอร์เนล

มีสามคอลัมน์ที่ระบุว่าจะทำอย่างไรเมื่อได้รับสัญญาณ:

1. หยุด — คอลัมน์นี้บอกโปรแกรมดีบั๊กว่าจะหยุดการทำงานของโปรแกรม (และคืนการควบคุม) หรือไม่ เมื่อโปรแกรมได้รับสัญญาณนี้

2. พิมพ์ — คอลัมน์นี้บอกโปรแกรมดีบั๊กว่าจะแสดงสัญญาณที่ได้รับหรือไม่

3. ผ่าน — คอลัมน์นี้บอกโปรแกรมดีบั๊กว่าจะผ่านสัญญาณไปยังโปรแกรมหรือไม่

เมนูบริบทที่จะแสดงเมื่อคุณคลิกที่ปุ่มเมาส์ขวาจะปิดใช้รายการทั้งหมดไว้ เพราะยังไม่ได้ทำฟังก์ชันที่เกี่ยวข้อง

#### ข้อมูลเกี่ยวกับแฟ้มที่ใช้

คุณสามารถขอดูข้อมูลเกี่ยวกับแฟ้มที่โปรแกรมที่ดีบั๊กอยู่เปิดใช้งานได้ โดยเลือกเมนู ดีบั๊ก ข้อมูล ข้อมูลแฟ้มปลายทาง จะเป็นการเปิดหน้าต่างแสดงข้อมูลดังกล่าว

#### ข้อมูลเกี่ยวกับโปรแกรมที่ดีบั๊ก

คุณสามารถขอดูข้อมูลเกี่ยวกับโปรแกรมที่กำลังดีบั๊กอยู่ได้ โดยเลือกเมนู ดีบั๊ก ข้อมูล ข้อมูลโปรแกรม จะเป็นการเปิดหน้าต่างแสดงข้อมูลดังกล่าว

#### ข้อมูลเกี่ยวกับข้อมูลโครงสร้างของเคอร์เนล

คุณสามารถขอดูข้อมูลเกี่ยวกับข้อมูลเคอร์เนลสำหรับโพรเซสปัจจุบันได้ โดยเลือกเมนู ดีบั๊ก ข้อมูล ข้อมูล User Struct ของเคอร์เนล จะเป็นการเปิดหน้าต่างแสดงข้อมูลดังกล่าว

#### ข้อมูลเกี่ยวกับตัวแปรโกลบอล

คุณสามารถแสดงรายชื่อตัวแปรโกลบอลทั้งหมดได้ โดยเลือกเมนู ดีบั๊ก ข้อมูล ข้อมูลตัวแปรโกลบอล จะเป็นการเปิดหน้าต่างแสดงรายชื่อตัวแปรโกลบอลทั้งหมด

#### ข้อมูลเกี่ยวกับเฟรมปัจจุบัน

คุณสามารถขอดูข้อมูลเกี่ยวกับเฟรมที่เลือกอยู่ในปัจจุบันได้ โดยเลือกเมนู ดีบั๊ก ข้อมูล ข้อมูลเฟรมปัจจุบัน จะเป็นการเปิดหน้าต่างบรรยายข้อมูลเฟรมปัจจุบัน

#### ข้อมูลเกี่ยวกับอาร์กิวเมนต์ของฟังก์ชันปัจจุบัน

คุณสามารถขอดูข้อมูลเกี่ยวกับอาร์กิวเมนต์ของฟังก์ชันปัจจุบันได้ โดยเลือกเมนู ดีบั๊ก ข้อมูล ข้อมูลอาร์กิวเมนต์ฟังก์ชัน จะเป็นการเปิดหน้าต่างบรรยายข้อมูลอาร์กิวเมนต์

#### คำสั่งผู้ใช้

การส่งคำสั่งไปยังแบ็กเอนด์ของการดีบั๊กโดยตรง ทำได้โดยเลือกเมนู ดีบั๊ก คำสั่งโปรแกรมดีบั๊ก จะเป็นการเปิดกล่องโต้ตอบเล็ก ๆ ที่คุณสามารถป้อนคำสั่งที่จะส่งไปยังโปรแกรมดีบั๊กเมื่อคุณกด Enter

ฟรอนต์เอนด์จะส่งคำสั่งนี้ไปยังแบ็กเอนด์โดยตรงโดยไม่มีการตรวจสอบใด ๆ ตัวอย่างหนึ่งคือ ถ้าคุณกำหนดจุดพักด้วยวิธีนี้ จุดพักก็จะไม่ปรากฏใน หน้าต่างจุดพัก คุณจึงควรหลีกเลี่ยงการใช้คำสั่งนี้ นอกจากคุณจะรู้จริง ๆ ว่าสิ่งที่คุณทำคืออะไร

## เครื่องมือออกแบบส่วนติดต่อ Glade

### เริ่มต้นอย่างเร็ว

ถ้าคุณไม่ต้องการอ่านคู่มือที่น่าเบื่อทั้งหมดนี้ นี่คือขั้นตอนที่จะทำให้ทุกอย่างพร้อมสำหรับการใช้:

1. คุณควรจะมีโครงการที่มีแฟ้ม Glade เปิดไว้

2. ไม่เหมือนกับเครื่องมือออกแบบ Glade ต้นฉบับ ปลั๊กอินแอนจูตาจะใช้ดับเบิลคลิกสำหรับสร้าง handlers สำหรับสัญญาณปริยาย คุณสามารถกระทำการคลิกที่วิดเจ็ต (เช่น สลับแท็บปัจจุบันใน GtkNotebook) ได้ โดยกดปุ่ม "Windows" หรือ "Super" ค้างไว้

3. เปิด ปรับแต่ง เครื่องมือออกแบบ GUI Glade และกาเลือกสามแฟล็กบนสุด แทรก handler เมื่อแก้ไข, จัดวางเครื่องมือออกแบบแบบแยก และ เพิ่มทรัพยากรโดยอัตโนมัติ

4. กาเลือกแฟล็ก มุมมอง เครื่องมือออกแบบ และย้ายหน้าต่างนี้ไปที่ตำแหน่งที่เหมาะสม

5. สลับไปที่แฟ้ม Glade ในพื้นที่ออกแบบและแฟ้มซอร์สที่จะเก็บ callback สำหรับแฟ้ม Glade นั้น แล้วเลือก Glade เชื่อมโยงแฟ้มล่าสุดในเครื่องมือออกและเครื่องมือแก้ไขเข้าด้วยกัน

6. คุณอาจจะเลือกเป้าหมายสำหรับรูปภาพและทรัพยากรอื่น ๆ ในเครื่องมือจัดการโครงการและเลือก กำหนดเป็นเป้าหมายทรัพยากรปริยาย ในเมนูบริบท

### คำถามทั่วไปเกี่ยวกับการใช้ Glade

ปลั๊กอิน Glade แทบจะคัดลอกหน้าที่ต่าง ๆ ของเครื่องมือออกแบบ Glade แบบแยกทำงานเดี่ยวมา แต่ก็มีความสามารถพิเศษเพิ่มเติมบางประการ หน้าต่างทั้งสี่ของเครื่องมือออกแบบ Glade คือ พื้นที่ออกแบบ กล่องเครื่องมือ เครื่องมือตรวจสอบวิดเจ็ต และเครื่องมือแก้ไขคุณสมบัติ ต่างมีวัตถุประสงค์การใช้งานเดียวกันกับในเครื่องมือออกแบบแบบแยกทำงานเดี่ยว ดังนั้น กรุณาอ่านคำอธิบายได้จาก คู่มือเครื่องมือออกแบบส่วนติดต่อ Glade มีความสามารถพิเศษเพิ่มเติมอย่างหนึ่ง ที่ช่วยให้คุณสามารถใช้โครงสร้างพื้นฐานของแอนจูตาได้อย่างมีประสิทธิภาพมากขึ้น ซึ่งจะอธิบายไว้ในที่นี้

### การเชื่อมโยงเครื่องมือแก้ไขกับเครื่องมือออกแบบ

คุณสามารถเชื่อมโยงแฟ้มในเครื่องมือแก้ไขข้อความกับแฟ้มในเครื่องมือออกแบบ Glade เข้าด้วยกันได้ เพื่อที่คุณจะสามารถสลับไปมาระหว่างเครื่องมือทั้งสอง และแทรกเค้าโครงเนื้อหาสำหรับ handler ที่สร้างใหม่ได้โดยอัตโนมัติ คุณสามารถเชื่อมโยงแฟ้มเครื่องมือแก้ไขมากกว่าหนึ่งรายการต่อแฟ้มเครื่องมือออกแบบหนึ่งรายการได้ โดยจะใช้แฟ้มในเครื่องมือแก้ไขล่าสุดหรือที่เชื่อมโยงกับวิดเจ็ตระดับบนสุดปัจจุบัน มีสองวิธีที่จะเชื่อมโยงแฟ้มในเครื่องมือแก้ไขกับแฟ้มในเครื่องมือออกแบบ วิธีแรกคือใช้กล่องโต้ตอบเชื่อมโยง วิธีที่สองคือเลือกแฟ้มในเครื่องมือออกแบบและในเครื่องมือแก้ไขในลำดับใดก่อนหลังก็ได้ แล้วเลือกเมนู Glade เชื่อมโยงแฟ้มล่าสุดในเครื่องมือออกและเครื่องมือแก้ไขเข้าด้วยกัน

### กล่องโต้ตอบการเชื่อมโยง

ช่วยให้คุณสามารถสร้างและจัดการการเชื่อมโยงได้ การสร้างการเชื่อมโยง ทำได้โดยเลือกแฟ้มเครื่องมือแก้ไขและแฟ้มเครื่องมือออกแบบในกล่องคอมโบ แล้วกดปุ่ม เชื่อมโยง คุณยังสามารถเลือกเอกสารได้โดยเปลี่ยนไปที่เอกสารที่ต้องการในเครื่องมือจัดการเอกสาร หรือในรายชื่อหน้าต่างในเมนูหลัก รายชื่อตรงกลางของกล่องโต้ตอบจะแสดงการเชื่อมโยงที่มีอยู่ ส่วนเครื่องมือควบคุมด้านล่างสองสามอย่างนั้น ใช้สำหรับแก้ไขคุณสมบัติของการเชื่อมโยง โดยมีคำอธิบายดังนี้:

regexp พิเศษ

  ย่อมาจาก "นิพจน์เรกิวลาร์พิเศษ" ใช้สำหรับกำหนดตำแหน่งที่กำหนดเองสำหรับแทรกเค้าโครง

ชื่อวิดเจ็ต

  ชื่อของวิดเจ็ตระดับบนสุดที่เป็นเจ้าของการเชื่อมโยงนี้

ชนิดของตำแหน่ง

  บรรยายตำแหน่งที่จะแทรกเค้าโครงของ handler หลังจุดเริ่มต้น หมายถึงแทรกหลังเครื่องหมายพิเศษ (ซึ่งอาจจะป้อนในช่อง regexp พิเศษ) และ ก่อนท้ายสุด หมายถึงก่อนเครื่องหมายสิ้นสุดพิเศษ ค่าโดยปริยายของเครื่องหมายเริ่มต้นจะเป็น /* window_name callbacks */ และของเครื่องหมายสิ้นสุดจะเป็น /* end of window_name callbacks */ โดยอาจละ window_name ได้

### สัญญาณปริยาย

การดับเบิลคลิกที่วิดเจ็ตในพื้นที่ออกแบบจะเป็นการสร้าง handler ใหม่สำหรับสัญญาณปริยาย โดยตั้งชื่อด้วยแม่แบบที่กำหนดไว้ล่วงหน้า ตัวอย่างเช่น สัญญาณปริยายของปุ่มคือ "clicked", ของกล่องกาคือ "toggled " ฯลฯ ถ้าเปิดใช้ตัวเลือก แทรก handler เมื่อแก้ไข แล้ว เค้าโครงของ handler ใหม่ก็จะถูกแทรกที่ตำแหน่งตามที่กำหนดโดยค่า ชนิดของตำแหน่ง

### การแทรกเค้าโครง

หนึ่งในเป้าหมายที่มีค่าที่สุดของการเชื่อมรวม แอนจูตา กับ Glade ก็คือการสร้างเค้าโครงของ handler โดยอัตโนมัติ เพื่อที่คุณจะไม่ต้องทำงานซ้ำซากมากมาย มันจะทำโดยอัตโนมัติ

มีหลายวิธีที่จะสร้างเค้าโครง:

- โดยอัตโนมัติถ้าตัวเลือก แทรก handler เมื่อแก้ไข เปิดใช้งาน

- โดยใช้เมนู Glade แทรกเค้าโครง handler, จัดตำแหน่งอัตโนมัติ ในเมนูหลัก

- โดยใช้รายการ แทรกเค้าโครง handler ในเมนูบริบทของเอกสารข้อความ

### การปรับแต่ง

แทรก handler เมื่อแก้ไข

  เปิดใช้งานการแทรกเค้าโครง handler ในเครื่องมือแก้ไขที่เชื่อมโยงอยู่ หลังจากใส่ handler ใหม่ในเครื่องมือแก้ไขสัญญาณ หรือหลังจากสร้าง handler ปริยายของสัญญาณ

จัดวางเครื่องมือออกแบบแบบแยก

  แยกพื้นที่ออกแบบออกจากเครื่องมือจัดการเอกสาร เพื่อให้คุณสามารถ dock แยกจากเครื่องมือแก้ไขข้อความได้

เพิ่มทรัพยากรโดยอัตโนมัติ

  เมื่อกาเลือกตัวเลือกนี้ ทรัพยากรทั้งหมด (เช่นรูปภาพ) จะถูกเพิ่มเข้าในเป้าหมายในโครงการปัจจุบัน คุณสามารถเลือกเป้าหมายดังกล่าวได้ โดยใช้เมนูบริบทของเครื่องมือจัดการโครงการ หรือโดยการป้อน id ของเป้าหมายลงในช่องป้อนใต้กล่องกา

แม่แบบ handler

  คุณสามารถเลือกรูปแบบการตั้งชื่อ handler ของสัญญาณโดยอัตโนมัติได้สองรูปแบบ

## การปรับแต่ง

การปรับแต่ง เป็นการปรับ แอนจูตา ให้เหมาะกับรสนิยมของคุณ เปิดใช้งานโดยเลือกเมนู แก้ไข ปรับแต่ง เพื่อเปิดกล่องโต้ตอบปรับแต่ง ค่าปรับแต่งบางส่วนจะอธิบายต่อไปข้างล่างนี้

### ทั่วไป

1. ไดเรกทอรีปริยายของโครงการ เป็นพาธซึ่งคุณวางแผนว่าจะใช้เก็บโครงการทั้งหมดของคุณ เครื่องมือวิเศษสร้างโปรแกรมจะสร้างโครงการใหม่ในไดเรกทอรีนี้เท่านั้น ค่าปริยายของไดเรกทอรีโครงการคือ ~/Projects ซึ่งโดยทั่วไปก็เหมาะสมสำหรับคนส่วนใหญ่

2. ข้อมูลผู้ใช้: ป้อนชื่อและที่อยู่อีเมลของคุณที่นี่ ข้อมูลนี้ไม่ได้ใช้ในการลงทะเบียนซอฟต์แวร์ แต่จะใช้ในการสร้างรายการใน ChangeLog และในการแทรกข้อความอื่น ๆ

### เครื่องมือจัดการแฟ้ม

1. ไดเรกทอรีรากถ้าไม่มีโครงการเปิดอยู่ เป็นพาธที่รากของเครื่องมือจัดการแฟ้มจะชี้ไป ถ้าไม่มีโครงการใดเปิดอยู่

2. ตัวกรองแฟ้ม: คุณสามารถกรองเอาแฟ้มบางแฟ้มออกจากแผนภาพต้นไม้ของแฟ้มได้ ตัวอย่างเช่น แฟ้มที่ซ่อน หรือแฟ้มที่ถูกละเลยโดยระบบควบคุมรุ่น ซึ่งโดยปกติจะเป็นแฟ้มที่ถูกสร้างขึ้นในขณะประกอบสร้าง และไม่ควรจะแก้ไข

## เครื่องมือที่ผู้ใช้กำหนดเอง

### เกริ่นนำ

ในบางครั้ง คุณอาจพบว่าเครื่องมือต่าง ๆ ที่มากับแอนจูตานั้นไม่เพียงพอ ในกรณีนี้ คุณอาจจะอยากเพิ่มความสามารถที่คุณต้องการเข้าในโค้ดของ Anjuta ด้วยตนเอง หรือส่งคำขอเพิ่มความสามารถมาที่เรา อย่างไรก็ตาม ทั้งสองวิธีนี้อาจจะช้าและขลุกขลัก โดยเฉพาะถ้าเครื่องมือของคุณเป็นเครื่องมือเฉพาะกิจ ในกรณีเช่นนี้ ขอแนะนำให้ใช้กรอบงานเครื่องมือของแอนจูตาแทน

แอนจูตาได้เตรียมกรอบงานที่มากความสามารถสำหรับเพิ่มเครื่องมือที่ผู้ใช้กำหนดเองเพื่อขยายการทำงาน เครื่องมือจะสามารถเข้าถึงความสามารถเกือบทั้งหมดของ IDE ผ่านการใช้ตัวแปร คุณสามารถเพิ่มเครื่องมือภายใต้รายการเมนูใด ๆ ก็ได้ สามารถระบุการเปลี่ยนทิศทางของข้อมูลเข้า ข้อมูลออก และข้อความข้อผิดพลาดในกรอบงาน GUI และกำหนดพารามิเตอร์บรรทัดคำสั่งให้กับเครื่องมือได้

คุณต้องเปิดใช้ปลั๊กอินเครื่องมือเพื่อจะใช้ความสามารถนี้!

### ตัวอย่างเครื่องมือ

นี่คือตัวอย่างง่าย ๆ ของการใช้ปลั๊กอินเครื่องมือเพื่อเชื่อมรวมกับสคริปต์สร้าง ChangeLog ของ GNOME

#### เครื่องมือแก้ไขเครื่องมือ

เครื่องมือแก้ไขเครื่องมือ

## ผู้เขียน

โครงการ แอนจูตา ก่อตั้งโดย Naba Kumar หน้านี้ จะแสดงรายชื่อผู้ร่วมสมทบงานให้กับแอนจูตาทุกคน

สำหรับข้อมูลเพิ่มเติมของ แอนจูตา กรุณาเข้าชมที่เว็บไซต์ของโครงการที่ http://anjuta.org การรายงานบั๊กควรจะใช้เครื่องมือติดตามบั๊กที่ไซต์พัฒนาโครงการ http://www.sourceforge.net/projects/anjuta

This manual was written by Naba Kumar, Andy Piper, Biswapesh Chattopadhyay and Johannes Schmid. Please send all comments and suggestions regarding this manual to the Anjuta Devel list anjuta-devel-list@gnome.org. Comments may also be submitted via the project trackers at SourceForge.

## สัญญาอนุญาต

โปรแกรมนี้เป็นซอฟต์แวร์เสรี คุณสามารถแจกจ่ายต่อ และ/หรือ แก้ไขโปรแกรมได้ ภายใต้เงื่อนไขของ GNU General Public License ที่เผยแพร่โดยมูลนิธิซอฟต์แวร์เสรี ไม่ว่าจะเป็นสัญญาอนุญาตรุ่นที่ 2 หรือรุ่นถัดมา(ตามแต่คุณจะเลือก)

โปรแกรมนี้เผยแพร่ด้วยความหวังว่าโปรแกรมจะมีประโยชน์ แต่ ไม่มีการรับประกันใดๆ ไม่มีแม้การรับประกัน อรรถประโยชน์เชิงพาณิชย์ หรือ ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะกิจใด ๆ กรุณาอ่าน GNU General Public License เพื่อดูรายละเอียดเพิ่มเติม

ชุดสำเนาของ GNU General Public License ได้แนบมาเป็นภาคผนวกใน คู่มือผู้ใช้ GNOME แล้ว คุณอาจรับชุดสำเนาของ GNU General Public License จากมูลนิธิซอฟต์แวร์เสรีได้ โดยเข้าไปที่ เว็บไซต์ของมูลนิธิ หรือโดยติดต่อไปที่

    Free Software Foundation, Inc. 51 Franklin Street Fifth Floor Boston, MA02110-1301USA