Ketika saya membangun solusi c ++ saya di Visual Studio mengeluh bahwa file xxxxx.pch hilang. Apakah ada pengaturan yang saya lewatkan untuk mendapatkan kembali header yang telah dikompilasi?
di sini adalah kesalahan yang tepat untuk kelengkapan:
Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
c++
visual-studio
precompiled-headers
pch
Sam Mackrill
sumber
sumber
Jawaban:
CATATAN: Versi selanjutnya dari IDE dapat menggunakan "pch" daripada "stdafx" dalam nama default untuk file terkait. Mungkin perlu untuk mengganti pd untuk stdafx dalam instruksi di bawah ini. Saya minta maaf. Itu bukan salahku.
Klik Oke
Jika Anda tidak memiliki stdafx.h di File Header Anda taruh di sana. Edit untuk memasukkan semua header yang ingin dikompilasi.
Beruntung 13. Silangkan jari Anda dan tekan Build.
sumber
stdafx.pch
file, sedangkanxxxxx.pch
dari pertanyaan mengisyaratkan masalah yang lebih kompleks (pengaturan multi-PCH).Penggunaan Precompiled Header (pch) adalah proses dua langkah.
Pada langkah pertama, Anda mengkompilasi file rintisan (Dalam VS200x biasanya disebut
stdafx.cpp
. Versi yang lebih baru digunakanpch.cpp
.). File rintisan ini secara tidak langsung hanya menyertakan header yang ingin Anda kompilasi. Biasanya, satu tajuk kecil (biasanyastdafx.h
ataupch.hpp
) mencantumkan tajuk standar seperti<iostream>
dan<string>
, dan ini kemudian disertakan dalam file rintisan. Kompilasi ini membuat file .pch.Pada langkah 2, kode sumber Anda yang sebenarnya menyertakan header kecil yang sama dari langkah 1 sebagai header pertama. Compiler, ketika bertemu header khusus ini, membaca file .pch yang sesuai sebagai gantinya. Itu berarti ia tidak harus (kembali) mengkompilasi header standar itu setiap waktu.
Dalam kasus Anda, sepertinya langkah 1 gagal. Apakah file rintisan masih ada? Dalam kasus Anda, itu mungkin saja
xxxxx.cpp
. Itu harus berupa file yang dikompilasi/Yc:xxxxx.pch
, karena itulah flag kompiler untuk mengindikasikan langkah 1 dari proses PCH. Jikaxxxxx.cpp
ada, dan ini adalah file rintisan, maka kemungkinan/Yc:
opsi kompilernya hilang .sumber
Memperbaiki:
Pastikan Anda memiliki xxxxx.cpp di proyek Anda
Kompilasi xxxxx.cpp dengan flag / Yc ( Buat Header Terkompilasi)
(klik kanan pada xxxxx.cpp -> properties -> Header Terkompilasi -> buat )
Kompilasi semua file lainnya dengan / Yu flag ( Use Precompiled Header)
(klik kanan pada project -> properties -> Precompiled Headers -> use )
sumber
sumber
Create (/Yc)
(untuk mengembalikan dan kemudian menggunakannya lagi)Ya itu bisa dihilangkan dengan opsi / Yc seperti yang ditunjukkan orang lain tetapi kemungkinan besar Anda tidak perlu menyentuhnya untuk memperbaikinya. Mengapa Anda mendapatkan kesalahan ini sejak awal tanpa mengubah pengaturan apa pun? Anda mungkin telah 'membersihkan' proyek dan mencoba mengkompilasi satu file cpp. Anda akan mendapatkan kesalahan ini dalam kasus itu karena header precompiler sekarang hilang. Hanya membangun seluruh proyek (bahkan jika tidak berhasil) dan daripada membangun file cpp tunggal dan Anda tidak akan mendapatkan kesalahan ini.
sumber
Dalam hal ini terjadi pada Anda pada server build (AppCenter) dan Anda menggunakan CocoaPods memastikan bahwa Podfile Anda masuk.
AppCenter hanya menjalankan perintah "pod install" jika menemukan Pofile dan TIDAK menemukan folder PODS pada file.
Saya mempunyai folder yang di-check-in, tetapi karena git secara otomatis mengabaikan file .pch (periksa Anda .gitignore untuk mempercayakan ini), .pch saya tidak diperiksa.
Saya mengurutkan masalah saya dengan memaksa file .pch untuk memeriksanya, tetapi menghapus folder PODS juga akan berhasil, karena Appcenter akan menjalankan perintah instal pod dalam kasus itu.
Untungnya ini membantu seseorang.
sumber
Jika semuanya benar, tetapi kesalahan ini ada, ia perlu memeriksa bagian selanjutnya dalam file ****. Vcxproj:
Dalam kasus saya itu ada nama yang salah dari konfigurasi: hanya kata pertama.
sumber
Saya tahu topik ini sudah sangat lama, tetapi saya sedang membahas ini di VS2015 baru-baru ini dan yang membantu adalah menghapus folder build dan membangunnya kembali. Ini mungkin terjadi karena mencoba untuk menutup program atau menghentikan / membekukan VS sementara membangun.
sumber
Saya sedang mencari file iOS PCH yang memiliki masalah yang sama, jika Anda tiba di sini seperti saya juga, solusi yang saya temukan adalah dengan membersihkan data yang diturunkan; Tutup Simulator, buka prefac xCode -> lokasi -> buka jalur data file turunan, tutup xCode, hapus file-file di folder data turunan, luncurkan kembali dan tepuk tangan :)
sumber
Coba Bangun> Bersihkan Solusi, lalu Bangun> Bangun Solusi. Ini bekerja untuk saya.
sumber