ฉันต้องยอมรับว่าฉันรู้สึกสูญเสียไปอย่างสมบูรณ์ในแต่ละครั้งที่ฉันต้องปฏิบัติตามการพึ่งพาของรหัส C หรือ C ++ บางอย่าง ปัจจุบันฉันอยู่ อูบุนตู 9.10 (Karmic Koala) แต่ฉันจำความรู้สึกเดียวกันของความเหงาจาก Windows ได้
ฉันคิดว่าฉันเข้าใจไลบรารี C, C ++, สแตติกและไดนามิก, ไฟล์ส่วนหัวและการเชื่อมโยงรวมถึงตัวจัดการแพ็คเก็ต "ความถนัด" แต่เมื่อพูดถึงภาคปฏิบัติ แม้ว่าฉันจะจัดการมันอย่างใดฉันก็ไม่รู้จริงๆว่าฉันไปถึงที่นั่นและเรียนรู้อะไรจากมันได้
ตัวอย่างเช่นวันนี้ฉันต้องการใช้รหัสที่ระบุว่า "มันใช้ glib2, curl และ openssl" . ในที่สุดฉันก็พบว่า curl
และ openssl
ติดตั้งแล้ว แต่ฉันจำเป็นต้องติดตั้ง libcurl3-dev
ผ่านตัวจัดการแพ็คเก็ตของฉันซึ่งจะต้องใช้ (และติดตั้ง) libcurl4-openssl-dev
ดังนั้นฉันจึงไม่ต้องกังวลเกี่ยวกับ OpenSSL แต่ฉันต้องเลือกชื่อแพ็กเก็ตเหล่านี้จาก 67 ตัวเลือกที่ทำให้เกิดเสียงคล้ายกัน และ glib
ในทางกลับกันก็จะต้องดาวน์โหลดและสร้างด้วยตนเองเนื่องจากไม่มีแพ็กเก็ตที่ตรงกันเลย
ฉันใช้เวลาหลายชั่วโมงกว่าจะค้นพบสิ่งนี้และไม่ใช่ครั้งแรก ดังนั้นคำถามของฉันคือ:
เมื่อฉันมีคำอธิบายที่คลุมเครือของการอ้างอิง:
- ฉันจะทราบได้อย่างไรว่ามีสิ่งใดบ้างที่ติดตั้งแล้ว
- ฉันจะทราบได้อย่างไรว่าสิ่งใดบ้างที่สามารถทำให้สำเร็จได้ด้วยการติดตั้งแพ็คเกจ
- ฉันจะรู้ชื่อที่แน่นอนของแพ็คเกจเหล่านั้นได้อย่างไร
- หากแพคเกจจะต้องมีการสร้างจากแหล่งที่มาฉันจะมั่นใจได้อย่างไรว่าฉันจะไม่หลงทางในการพึ่งพาที่ไม่รู้จบของแหล่งที่มานี้และการพึ่งพาของการพึ่งพาเหล่านั้น ... ?
- ฉันคิดว่าฉันต้องเชื่อมโยงไลบรารีกับวัตถุไฟล์ของฉันด้วย หากแพ็กเก็ตเดียวมาพร้อมกับไฟล์ไลบรารีแบบสแตติกจำนวนมากฉันจะรู้ได้อย่างไร
./configure
และ make
กำลังมองหาข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องในฝนตกหนัก ...