ในคุณสมบัติคอนฟิกูเรชันของโครงการของฉันภายใต้ "ไดเรกทอรี VC ++" มีรายการ "รวมไดเรกทอรี" แต่ภายใต้ตัวเลือก "C / C ++" มีรายการอื่นที่เรียกว่า "Additional Include Directories" สิ่งเดียวกันเกิดขึ้นกับไดเรกทอรีไลบรารี
สองรายการนี้แตกต่างกันอย่างไร?
ในคุณสมบัติคอนฟิกูเรชันของโครงการของฉันภายใต้ "ไดเรกทอรี VC ++" มีรายการ "รวมไดเรกทอรี" แต่ภายใต้ตัวเลือก "C / C ++" มีรายการอื่นที่เรียกว่า "Additional Include Directories" สิ่งเดียวกันเกิดขึ้นกับไดเรกทอรีไลบรารี
สองรายการนี้แตกต่างกันอย่างไร?
คำตอบ:
นี่คือความอึดอัดที่ถูกนำมาใช้ใน VS2010 การตั้งค่า VC ++ Directories เคยอยู่ใน Tools + Options, Projects and Solutions, VC ++ Directories การตั้งค่าส่วนกลางที่ใช้กับทุกโครงการที่สร้างขึ้นในเครื่อง ยังคงมีอยู่ แต่ชี้ให้เห็นว่าตอนนี้คุณควรเปลี่ยนในการตั้งค่าโครงการของคุณ ผลข้างเคียงของการยกเครื่อง build engine ใน VS2010 ทำให้การสร้างด้วย msbuild การลบการตั้งค่าต่อโปรเจ็กต์อาจเป็นเหตุผล แต่จะทำให้โปรเจ็กต์ที่มีอยู่มากเกินไป
ดังนั้นจึงควรใช้การตั้งค่า VC ++ Directories เป็นค่าเริ่มต้นของเครื่อง โปรแกรมติดตั้ง VS จะตั้งค่าล่วงหน้าโดยอัตโนมัติ Tinker กับมันเฉพาะในกรณีที่คุณต้องการลำดับการค้นหาไดเร็กทอรีที่ผิดปกติทำให้ตำแหน่งที่กำหนดเองเป็นอันดับสุดท้าย ผิดปกติมากที่จะทำเช่นนั้น
มันทำงานอย่างไร และมันก็ถูกเอาเปรียบในที่สุด เพิ่มขีดความสามารถของการตั้งค่า Platform Toolset ใน VS2012 ขึ้นไป คอมไพเลอร์ที่แตกต่างกันตัวเชื่อมโยงที่แตกต่างกันไดเร็กทอรี #include ต่างกันเส้นทางการค้นหาตัวเชื่อมโยงที่แตกต่างกัน แก้ไขด้วยการตั้งค่าเดียวก็ดี
รวมไดเรกทอรีที่INCLUDE
สอดคล้องกับตัวแปรสภาพแวดล้อม
การตั้งค่าไดเร็กทอรีที่แสดงในหน้าต่างคือไดเร็กทอรีที่ Visual Studio จะค้นหารวมไฟล์ที่อ้างถึงในไฟล์ซอร์สโค้ดของคุณ สอดคล้องกับตัวแปรสภาพแวดล้อม INCLUDE
แม้ว่าไดเร็กทอรีรวมเพิ่มเติมจะถูกส่งผ่านอาร์กิวเมนต์บรรทัดคำสั่ง (เช่น\I
ตัวเลือก)
INCLUDE
Windowsซึ่งกำหนดไว้ภายนอกVisual Studio
INCLUDE
และLIB
ตัวแปรสภาพแวดล้อมที่ถูกสร้างขึ้นเมื่อMicrosoft Windows SDKการติดตั้งกับVisual Studioการตัดสินใจใช้ไดเรกทอรีรวมหรือไดเรกทอรีที่รวมเพิ่มเติมจะขึ้นอยู่กับกระบวนการพัฒนาขององค์กรของคุณ ในความคิดของฉันมันสำคัญกว่า:
#define
directive) สืบทอดเนื้อหาจากแหล่งที่มาที่แตกต่างกัน มาโครเช่น ...
$(Include)
สืบทอดค่าจากตัวแปรสภาพแวดล้อมของWindows$(OutDir)
สืบทอดค่าจากVisual Studio IDE
Microsoft.Cpp.Win32.user
และมีเพียงเท่านี้ หากคุณแก้ไขรายการ "VC ++ Directories" เมื่อมีโปรเจ็กต์ที่ใช้งานอยู่หรือแผ่นคุณสมบัติอื่นการเปลี่ยนแปลงจะยังคงอยู่ใน.vcxproj
ไฟล์หรือใน.props
ไฟล์ตามลำดับและจะไม่เป็นแบบโกลบอลหรือแบบทั้งผู้ใช้เลย