Apa perbedaan antara "Sertakan Direktori" dan "Direktori Sertakan Tambahan"

94

Dalam properti konfigurasi proyek saya, di bawah "direktori VC ++" ada entri untuk "Sertakan Direktori". Tetapi di bawah opsi "C / C ++", ada entri lain yang disebut "Direktori Sertakan Tambahan". Hal yang sama terjadi dengan direktori perpustakaan.

Apa perbedaan antara kedua entri ini?

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Artium
sumber

Jawaban:

48

Ini adalah kejanggalan yang diperkenalkan di VS2010. Pengaturan VC ++ Directories dulu terletak di Tools + Options, Projects and Solutions, VC ++ Directories. Pengaturan global yang diterapkan pada setiap proyek yang dibangun di atas mesin. Itu masih ada tetapi menunjukkan bahwa Anda sekarang harus mengubahnya dalam pengaturan proyek Anda. Efek samping dari perombakan mesin build di VS2010, memungkinkan pembangunan dengan msbuild. Menghapus pengaturan per proyek akan menjadi hal yang logis, tetapi itu akan merusak terlalu banyak proyek yang ada.

Karena itu, mungkin yang terbaik adalah memperlakukan pengaturan Direktori VC ++ sebagai default mesin. Ini secara otomatis diatur oleh penginstal VS. Bermain-main dengan itu hanya jika Anda memerlukan urutan pencarian direktori yang tidak biasa, menempatkan lokasi khusus terakhir. Sangat tidak biasa untuk melakukannya.

Namun itu berhasil. Dan itu akhirnya dimanfaatkan. Memberdayakan pengaturan Platform Toolset di VS2012 dan yang lebih baru. Kompiler berbeda, penaut berbeda, direktori #include berbeda, jalur pencarian penaut berbeda. Dimodifikasi hanya dengan satu pengaturan, bagus.

Hans Passant
sumber
3
Hmmm ... Ini adalah benar bahwa pilihan gloabl tersimpan dalam ini - tapi ini adalah lembar properti Microsoft.Cpp.Win32.userdan hanya ini. Jika Anda mengedit entri "VC ++ Directories" saat mengaktifkan proyek atau lembar properti lainnya, maka perubahan akan disimpan di .vcxprojfile atau di .propsfile terkait dan tidak akan global atau seluruh pengguna sama sekali.
Martin Ba
25

The Sertakan Direktori berkorespondensi dengan variabel lingkungan INCLUDE.

Pengaturan direktori yang ditampilkan di jendela adalah direktori yang akan dicari oleh Visual Studio termasuk file yang dirujuk dalam file kode sumber Anda. Sesuai dengan variabel lingkungan TERMASUK.

Sementara Direktori Sertakan Tambahan dilewatkan melalui argumen baris perintah (yaitu \Iopsi).

CodeNaked
sumber
19

KONFIGURASI TERMASUK JALAN

Direktori VC ++: Sertakan Direktori

  • nilai ini diwarisi dari variabel lingkungan INCLUDE Windows yang ditentukan di luar Visual Studio
    • variabel lingkungan dapat berupa: global ke komputer atau memiliki cakupan tingkat pengguna
    • The INCLUDEdan LIBvariabel lingkungan diciptakan ketika Microsoft Windows SDK diinstal dengan Visual Studio .

C / C ++: Direktori Sertakan Tambahan

  • adalah pengaturan tingkat proyek ... Anda harus menentukan nilai ini untuk setiap proyek dalam solusi Anda
  • nilai ini dapat dipertahankan ke kontrol sumber

CATATAN TAMBAHAN

Yang mana yang harus saya gunakan?

Keputusan untuk menggunakan Direktori Sertakan atau Direktori Sertakan Tambahan akan bergantung pada proses pengembangan organisasi Anda. Menurut saya, yang lebih penting:

  • bahwa Anda dapat secara konsisten dan andal membuat ulang lingkungan pengembangan (pikirkan: menyerahkan kode sumber ke pengembang lain)
  • untuk pengembang dalam suatu organisasi gunakan pendekatan yang konsisten

Catatan Tentang Makro

  • Makro konfigurasi project C ++ (jangan bingung dengan #defineperintah pra-prosesor C ++ ) mewarisi konten dari sumber yang berbeda. Makro seperti ...
    • $(Include)mewarisi nilai mereka dari variabel lingkungan Windows
    • $(OutDir)mewarisi nilai mereka dari Visual Studio IDE

REFERENSI

Pressacco
sumber