วิธีเพิ่มพา ธ รวมเริ่มต้นสำหรับ GCC ใน Linux


288

ฉันต้องการ GCC จะรวมไฟล์จาก$HOME/includeที่นอกเหนือไปจากปกติรวมถึงไดเรกทอรี $LD_LIBRARY_PATHแต่มีไม่ดูเหมือนจะเป็นแบบอนาลอก

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


3
นี่คือลิงก์ไปยังคู่มือ GCC 4.8.1 ที่ตัวแปรสภาพแวดล้อมC_INCLUDE_PATH และ CPLUS_INCLUDE_PATH
mloskot

คำตอบ:


392

ลองตั้งค่าC_INCLUDE_PATH(สำหรับไฟล์ส่วนหัว C) หรือCPLUS_INCLUDE_PATH(สำหรับไฟล์ส่วนหัว C ++)

ดังที่ Ciro ได้กล่าวไว้CPATHจะกำหนดเส้นทางสำหรับทั้ง C และ C ++ (และภาษาอื่น ๆ )

รายละเอียดเพิ่มเติมในเอกสารของ GCC


53

สร้างนามแฝงสำหรับ gcc ด้วยรายการโปรดของคุณ

alias mygcc='gcc -I /whatever/'

12
ฉันคิดว่าไม่ควรมีที่ว่างหลังจาก-I
Iulius Curt

10
แค่นิสัยที่จะละเว้นพื้นที่เช่นเดียวกับที่คุณพิมพ์-l<libnam>ลิงก์โปรดทราบว่าการสร้างนามแฝงเป็นวิธีการแก้ปัญหาที่แย่มากจริง ๆ แล้วคุณจะสร้างรายการของ 'รายการโปรดรวม' และเพิ่มไว้ใน makefile ของคุณ
h4unt3r

9
"ทางเลือกที่สองที่มีไลบรารีเป็นอาร์กิวเมนต์ที่แยกต่างหากมีไว้สำหรับการปฏิบัติตาม POSIX เท่านั้นและไม่แนะนำ" ตามคู่มือ GCC
Jori

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

8

ไฟล์ข้อมูลจำเพาะ gcc สามารถทำงานได้อย่างไรก็ตามผู้ใช้ทุกคนในเครื่องจะได้รับผลกระทบ

ดูที่นี่


6

เพียงบันทึก: CPLUS_INCLUDE_PATHและจะไม่เทียบเท่า C_INCLUDE_PATH ให้บริการ(ลิงเกอร์แบบไดนามิกที่รันไทม์) ในขณะที่เทียบเท่าของอดีตสองที่ให้บริการ C / C ++ คอมไพเลอร์ของคุณกับสถานที่ตั้งของห้องสมุดคือLD_LIBRARY_PATHLD_LIBRARY_PATHldLIBRARY_PATH

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.