การเชื่อมโยงกับไลบรารี C ++ ต้องการความยุ่งยากมากและต้องใช้ความรู้และความพยายามอย่างมากในการทำอย่างถูกต้อง อาจเป็นการข่มขู่ผู้เรียน C ++
บ่อยครั้งที่ผู้เขียน / ผู้ดูแลของไลบรารี C ++ ที่เฉพาะเจาะจงจะมีสิ่งนี้อยู่ในใจและจะแนะนำวิธีหนึ่งหรืออื่น ๆ
กล่าวอีกนัยหนึ่งหากผู้เขียน / ผู้ดูแลตั้งใจที่จะรวมห้องสมุดโดยส่วนหัว (* .h และ. hpp เท่านั้น) หรือรวมโดยแหล่งที่มา ( .h * หรือ. c ) ก็จะได้กล่าวอย่างชัดเจนใน readme หรือเอกสาร
ไลบรารีที่ได้รับการออกแบบและดูแลให้เป็นข้ามแพลตฟอร์ม (และเข้ากันได้กับผู้ขายคอมไพเลอร์และสภาพแวดล้อมหลาย C ++) มักจะมีระบบ makefile หรือระบบกำหนดค่าการสร้าง (เช่น CMake) ระบบเหล่านี้ใช้เพื่อสร้างส่วนหัว shims ที่ปรับความแตกต่างของแพลตฟอร์มให้เรียบและเพื่อสร้างสคริปต์ที่จะเรียกใช้คอมไพเลอร์และลิงเกอร์บนไฟล์ต้นฉบับโดยใช้ตัวเลือกบรรทัดคำสั่งที่เหมาะสมและในลำดับที่ถูกต้อง ขึ้นอยู่กับแพลตฟอร์มและการกำหนดค่าระบบบิลด์เหล่านี้อาจรวมหรือแยกส่วนหัวหรือไฟล์ต้นฉบับบางอย่างหรืออาจกำหนดหรือยกเลิกการกำหนดสัญลักษณ์พรีโปรเซสเซอร์
การขัดกับข้อเสนอแนะของผู้เขียน / ผู้ดูแลรักษานั้นเป็นไปได้ แต่ก็ต้องใช้ความพยายามในการย้ายพอร์ตอย่างกว้างขวางเสมอ จำนวนของงานที่จำเป็นสำหรับความพยายามในการพอร์ตนั้นสามารถเทียบเคียงได้กับการพอร์ตกับสภาพแวดล้อม C ++ ที่แตกต่างกัน
เนื่องจาก Visual C ++ ใช้ระบบการสร้างของตัวเองโดยยึดตามไฟล์คำอธิบายโครงการ (บางส่วนใช้ XML) จึงค่อนข้างแตกต่างจากระบบการสร้างสคริปต์ที่ใช้ภายใต้ Linux วิธีการที่ CMake ใช้สำหรับ CMake เพื่อทำการตั้งค่าการกำหนดค่าจากนั้นปล่อยโครงสร้างโครงการ Visual C ++ ทั้งหมดด้วยตัวเลือกการกำหนดค่าที่ถูกอบเข้าในไฟล์ * .vcxproj
หากปัญหาเกิดขึ้นระหว่างการเชื่อมโยง C ++ กับ Visual C ++ การตั้งค่าการสร้างในไฟล์ * .vcxproj สามารถแก้ไขได้โดยใช้ Visual Studio GUI (โดยใช้กล่องโต้ตอบหน้าคุณสมบัติโครงการ) สิ่งนี้จะถือว่าคุณเข้าใจความหมายและผลของการรวบรวมและตั้งค่าการเชื่อมโยง C ++ ที่สำคัญจำนวนโหล
ตอนนี้ส่วนที่โง่ที่สุดของการใช้ Visual C ++: หากคุณกำลังใช้ไลบรารีบุคคลที่สามที่แตกต่างกันนับสิบการเปลี่ยนการตั้งค่าการสร้างสำหรับพวกเขาทั้งหมดหมายถึงการเข้าไปในแต่ละไฟล์ * .vcxproj และทำซ้ำการเปลี่ยนแปลงเดียวกันบน GUI สำหรับโหล ครั้ง ยุ่งยาก แต่ก็สามารถทำได้ถ้าคุณรู้วิธีการทำอย่างถูกต้อง
ผู้เรียน Visual C ++ ส่วนใหญ่เรียนรู้การตั้งค่าเหล่านี้อย่างหนักโดยสังเกตข้อผิดพลาดของคอมไพเลอร์ Visual C ++ และ linker ที่ระบุด้วยรหัสข้อผิดพลาด ตัวอย่างเช่นหนึ่งอาจค้นหา LNK2005 ด้วยความหมายตื้น ๆ ของ "สัญลักษณ์สัญลักษณ์ถูกกำหนดมากกว่าหนึ่งครั้ง" แต่ด้วยความเข้าใจว่าคำจำกัดความที่ซ้ำกันนั้นไม่ได้เกิดขึ้นจากความผิดพลาดในการเขียนโปรแกรมที่ประมาทแทนที่จะเกิดขึ้นเพราะ ความขัดแย้งหรือการใช้งานผิดพลาดของตัวเลือกการรวบรวมและการเชื่อมโยง
เพื่อให้คำตอบที่เฉพาะเจาะจงและมีประโยชน์กับสถานการณ์ของคุณมากขึ้นคุณจะต้องทราบชื่อของห้องสมุดที่คุณตั้งใจจะใช้รวมถึงข้อผิดพลาดในการเชื่อมโยงหรือปัญหาอื่น ๆ ที่คุณพบ คุณอาจพบคำตอบสำหรับคำถามเหล่านั้นในกระดานสนทนาของห้องสมุดนั้น ๆ คำถามเหล่านี้มักถูกแท็กด้วย "ปัญหาการเชื่อมโยง", "windows" และ "visual C ++"
คำแนะนำเบื้องต้นสำหรับผู้เชี่ยวชาญเกี่ยวกับปัญหานี้เป็นไปได้ แต่เป็นไปได้เฉพาะโครงการ การตั้งค่าที่แตกต่างกันที่เลือกโดยโครงการที่แตกต่างกันจะต้องเขียนใหม่ทั้งหมดของคู่มือ