/Yu
(Gunakan file header yang telah dikommpilasikan sebelumnya)
Menginstruksikan pengkompilasi untuk menggunakan file header (.pch
) yang sudah dikompilasi sebelumnya dalam kompilasi saat ini.
Sintaks
/Yu
[filename]
Argumen
filename
Nama file header, yang disertakan dalam file sumber menggunakan #include
arahan preprocessor.
Keterangan
Nama file sertakan harus sama untuk opsi /Yc
yang membuat header yang telah dikommpilasikan sebelumnya dan untuk opsi selanjutnya /Yu
yang menunjukkan penggunaan header yang telah dikommpilasikan sebelumnya.
Untuk /Yc
, nama file menentukan titik di mana prakompilasi berhenti; pengkompilasi melakukan prakompilasi semua kode melalui nama file dan memberi nama header yang dihasilkan sebelumnya menggunakan nama dasar file include dan ekstensi ..pch
File .pch
harus dibuat menggunakan /Yc
.
Pengkompilasi memperlakukan semua kode yang terjadi sebelum file .h sebagai dikompilasi sebelumnya. Ini melompat ke tepat di luar arahan yang #include
terkait dengan .h
file, menggunakan kode yang terkandung dalam .pch
file, dan kemudian mengkompilasi semua kode setelah nama file.
Pada baris perintah, tidak ada spasi yang diizinkan antara /Yu
dan nama file.
Saat Anda menentukan /Yu
opsi tanpa nama file, program sumber Anda harus berisi #pragma hdrstop
pragma yang menentukan nama file header, file yang .pch
telah dikompretasi. Dalam hal ini, pengkompilasi akan menggunakan header (.pch
file) yang telah dikompilasi sebelumnya yang dinamai oleh /Fp (Name .pch file)
. Pengkompilasi melompat ke lokasi pragma tersebut dan memulihkan status yang dikompilasi dari file header yang telah dikompilasi sebelumnya yang ditentukan. Kemudian hanya mengkompilasi kode yang mengikuti pragma. Jika #pragma hdrstop
tidak menentukan nama file, pengkompilasi mencari file dengan nama yang berasal dari nama dasar file sumber dengan .pch
ekstensi. Anda juga dapat menggunakan /Fp
opsi untuk menentukan file yang berbeda .pch
.
Jika Anda menentukan /Yu
opsi tanpa nama file dan gagal menentukan hdrstop
pragma, pesan kesalahan dihasilkan dan kompilasi tidak berhasil.
/Yc
Jika opsi nama file dan /Yu
nama file terjadi pada baris perintah yang sama dan keduanya mereferensikan nama file yang sama, /Yc
nama file lebih diutamakan, prakompilasi semua kode hingga dan termasuk file bernama. Fitur ini menyederhanakan penulisan makefiles.
Karena .pch
file berisi informasi tentang lingkungan mesin dan informasi alamat memori tentang program, Anda hanya boleh menggunakan .pch
file pada komputer tempat file dibuat.
Untuk informasi selengkapnya tentang header yang telah dikommpilasikan sebelumnya, lihat:
Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio
Tentukan
/Yc
(Buat file header yang telah dikommpilasikan sebelumnya) pada file .cpp di proyek Anda.Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Header yang Telah Dikompilasi sebelumnya.
Ubah properti Header yang Telah Dikommpilasikan, properti Buat/Gunakan PCH Melalui File, atau properti Buat/Gunakan Header yang Telah Dikompreilasi.
Untuk mengatur opsi pengkompilasi ini secara terprogram
- Lihat PrecompiledHeaderThrough dan UsePrecompiledHeader.
Contoh
Jika kode berikut:
#include <afxwin.h> // Include header for class library
#include "resource.h" // Include resource definitions
#include "myapp.h" // Include information specific to this app
...
dikompilasi dengan menggunakan baris CL /YuMYAPP.H PROG.CPP
perintah , pengkompilasi tidak memproses ketiga pernyataan yang disertakan. Sebaliknya, ia menggunakan kode yang telah dikompilasi sebelumnya dari MYAPP.pch
, yang menghemat waktu yang terlibat dalam praproscesing ketiga file (dan file apa pun yang mungkin mereka sertakan).
Anda dapat menggunakan /Fp (Name .pch file)
opsi dengan /Yu
opsi untuk menentukan nama .pch
file jika nama berbeda dari argumen nama file ke /Yc
atau nama dasar file sumber, seperti dalam contoh berikut:
CL /YuMYAPP.H /FpMYPCH.pch PROG.CPP
Perintah ini menentukan file header yang telah dikommpilasikan sebelumnya bernama MYPCH.pch
. Pengkompilasi menggunakan kontennya untuk memulihkan status semua file header yang telah dikompilasi sebelumnya hingga dan termasuk MYAPP.h
. Pengkompilasi kemudian mengkompilasi kode yang terjadi setelah #include "MYAPP.h"
direktif * .
Lihat juga
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC