Pemecahan masalah untuk Microsoft Visual C++ kompilasi atau Visual C++ Linker

PUBLIKASI CEPAT

PUBLIKASI CEPAT MENYEDIAKAN ARTIKEL INFORMASI LANGSUNG DARI DALAM ORGANISASI DUKUNGAN MICROSOFT. INFORMASI YANG TERKANDUNG DI DALAMNYA DIBUAT DALAM KAITANNYA DENGAN MUNCUL ATAU UNIK TOPIK, ATAU DITUJUKAN UNTUK MELENGKAPI INFORMASI PANGKALAN PENGETAHUAN LAINNYA.

Tindakan

Ketika menyelidiki kemungkinan masalah dengan Microsoft Visual C++ kompilasi atau linker, sangat penting untuk mendapatkan informasi sebanyak mungkin tentang proses pembuatan dan opsi yang sedang digunakan. Artikel ini membahas beberapa kiat pemecahan masalah untuk membantu menyelesaikan pembuatan masalah penangkapan komprehensif informasi atau untuk Microsoft Support.

Pemecahan masalah

Masalah compiler



Untuk masalah compiler, seperti kesalahan internal kompilator (yaitu C1001), macet atau lumpuh, hal ini dapat berguna untuk menangkap output C/C++ preprocessor untuk memberikan contoh sederhana direproduksi masalah. Dalam Visual C++ IDE, ini dapat dilakukan dengan menata properti "Menghasilkan berkas Preprocessed" ke "dengan nomor baris (/ P)" atau "Tanpa nomor baris (/EP /P)". Properti ini dapat ditemukan di halaman properti proyek pada Konfigurasi properti, C/C++,Preprocessor pengaturan.


Pengaturan ini dapat mengatur tingkat proyek dari Project, menu properti di mana file kasus itu akan membuat saya untuk semua file sumber dalam proyek atau dapat mengatur untuk satu file dengan mengklik kanan berkas di explorer solusi , memilih menu konteks properti untuk memunculkan dialog properti berkas tunggal.


/P compiler switch mengarahkan CL. EXE untuk menangkap preprocessor output ke berkas. Menambahkan /EP akan menekan tambahan informasi nomor baris untuk file yang dihasilkan. /P ini biasanya cukup, tetapi /EP /P akan membuat file output yang lebih kecil. File output preprocessor dihasilkan akan memiliki nama yang sama seperti berkas sumber yang disusun namun dengan ekstensi file saya, misalnya file1.cpp menghasilkan preprocessor output file1.i berkas di direktori yang sama. Perhatikan bahwa kompilasi akan terus melewati fase preprocessor saat menggunakan switch, yaitu tidak ada. OBJ file yang akan dihasilkan oleh kompilator dan Anda mungkin menerima galat link mencerminkan kenyataan bahwa OBJ berkas tidak ditemukan.


Anda dapat menyusun file preprocessor output sendiri di luar konteks proyek Visual Studio. Saya berkas ini berisi semua kode file header, penggantian makro dan kompilasi preprocessed direktif informasi yang diperlukan untuk kompilasi yang tertentu. C atau. File sumber CPP. Dengan kata lain, ini adalah modul mandiri yang harus dapat mereproduksi masalah kompilasi tanpa ketergantungan apa pun di berkas lainnya. File yang dihasilkan akan sering sangat besar dan berisi sejumlah besar spasi kosong.

Masalah tautan



Untuk masalah linker (LNKxxxx jenis galat), Anda dapat menggunakan switch baris perintah linker /LINKREPRO untuk menghasilkan kasus uji yang mengandung hanya linker input tanpa ketergantungan apa pun pada berkas sumber. / LINKREPRO menggunakan sintaks berikut


/LINKREPRO:<path>

'< path >' merupakan lintasan penuh ke map kosong pada sistem berkas lokal. Folder ini sudah harus ada - linker tidak akan membuatnya secara otomatis dan akan menghasilkan kesalahan jika folder tidak ada.


Opsi ini tidak langsung terkena proyek sistem. Untuk menambahkan edisi, buka menu properti proyek dari Project menu. Dalam Konfigurasi properti, Linker, baris perintah, di kotak edit Opsi tambahan , masukkan /LINKREPRO: < jalur > switch (termasuk garis miring) dan mengganti jalur dengan lintasan map lokal yang sudah ada. Misalnya:


/LINKREPRO:C:\TEMP\LINKREPRO\


Jika ada beberapa linker pilihan sudah di kotak edit, sperate mereka dengan koma.


Selain itu, Anda dapat menggunakan variabel lingkungan LINK_REPRO. Jika ada variabel lingkungan LINK_REPRO, linker akan membaca jalur output dari variabel lingkungan dan menghasilkan linkrepro. /LINKREPRO switch tidak diperlukan saat menggunakan variabel lingkungan LINK_REPRO. Untuk menggunakan variabel lingkungan LINK_REPRO:


1. buka wantian perintah Visual Studio. Ini diinstal di bawah menu mulai, folder di Visual Studio pada Visual Studio Tools subfolder.


2. Buat variabel lingkungan LINK_REPRO menunjuk ke direktori yang sudah ada dan kosong, misalnya:


SET LINK_REPRO = C:\TEMP\LINKREPRO\


3. menjalankan Visual Studio dari wantian perintah yang sama sehingga berbagi salinan dari lingkungan Anda baru saja diubah.


4. Buka proyek dan melakukan Membangun kembali semua proyek.


Ketika LINK. EXE dilibatkan dalam membangun, ini akan menyalin semuanya perlu link proyek Anda ke direktori linkrepro. Di antara berkas yang disalin akan objek file (*. OBJ), diperlukan Perpustakaan file (*. LIB), termasuk Microsoft Perpustakaan, dan berkas respons linker (tautan. RSP), sehingga LINK ini tidak lagi tergantung pada file solusi.


Untuk mengkonfirmasi bahwa Anda memiliki semua file yang diperlukan untuk mereproduksi masalah tautan, Anda dapat menjalankan tautan di direktori yang ditentukan oleh variabel lingkungan LINK_REPRO, menggunakan berkas respons linker yang dihasilkan oleh linkrepro:
TAUTAN @link.rsp


Sebelum melakukan hal ini, gunakan perintah berikut ini untuk menonaktifkan fitur ini jika menggunakan variabel lingkungan baris perintah:
SET LINK_REPRO =


Anda juga dapat menggunakan proses ini untuk memverifikasi file yang terlibat dalam menciptakan Perpustakaan, saat menggunakan LIB. EXE atau tautan /LIB.

SANGGAHAN

MICROSOFT DAN/ATAU PEMASOKNYA TIDAK MEMBUAT PERNYATAAN ATAU JAMINAN TENTANG KESESUAIAN, KEANDALAN ATAU AKURASI DARI INFORMASI YANG TERKANDUNG DALAM DOKUMEN DAN GRAFIS TERKAIT YANG DITERBITKAN DI SITUS WEB INI ("BAHAN") UNTUK TUJUAN APA PUN. MATERI YANG MUNGKIN BERISI KETIDAKSESUAIAN TEKNIS ATAU KESALAHAN KETIK DAN DAPAT DIREVISI SETIAP SAAT TANPA PEMBERITAHUAN.


SEJAUH YANG DIPERBOLEHKAN OLEH HUKUM YANG BERLAKU, MICROSOFT DAN/ATAU PEMASOKNYA TIDAK BERTANGGUNG JAWAB DAN MENGECUALIKAN SEMUA REPRESENTASI, JAMINAN, DAN KETENTUAN BAIK TERSURAT, TERSIRAT ATAU MENURUT UNDANG-UNDANG, TERMASUK NAMUN TIDAK TERBATAS PADA REKOMENDASI, JAMINAN, ATAU KONDISI JUDUL, NON PELANGGARAN, KONDISI YANG MEMUASKAN ATAU KUALITAS, DAPAT DIPERJUALBELIKAN DAN KESESUAIAN UNTUK TUJUAN TERTENTU, DALAM KAITANNYA DENGAN MATERI.

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×