Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam beberapa kasus, Anda mungkin perlu mengonfigurasi proyek C++ Anda secara manual agar IntelliSense berfungsi dengan baik. Untuk proyek MSBuild (berdasarkan .vcxproj file), Anda dapat menyesuaikan pengaturan di properti proyek. Untuk proyek non-MSBuild, Anda menyesuaikan pengaturan dalam CppProperties.json file di direktori akar proyek. Dalam beberapa kasus, Anda mungkin perlu membuat file petunjuk untuk membantu IntelliSense memahami definisi makro. IDE Visual Studio membantu Anda mengidentifikasi dan memperbaiki masalah IntelliSense.
IntelliSense berkas tunggal
Saat Anda membuka file yang tidak disertakan dalam proyek, Visual Studio menyediakan beberapa dukungan IntelliSense, tetapi secara default tidak ada kesalahan yang ditampilkan. Jika Bilah Navigasi menampilkan File Lain-lain, maka itu mungkin menjelaskan mengapa Anda tidak melihat garis merah bergelombang di bawah kode yang salah, atau mengapa makro preprocessor tidak ditentukan.
Periksa Daftar Kesalahan
Jika file tidak terbuka dalam mode file tunggal, dan IntelliSense tidak berfungsi dengan benar, tempat pertama yang perlu diperiksa adalah jendela Daftar Kesalahan . Untuk melihat semua kesalahan IntelliSense untuk file sumber saat ini bersama dengan semua file header yang disertakan, pilih Build + IntelliSense di menu dropdown:
IntelliSense menghasilkan maksimum 1.000 kesalahan. Jika ada lebih dari 1.000 kesalahan dalam file header yang disertakan oleh file sumber, maka file sumber hanya menampilkan satu penanda kesalahan di awal file sumber.
Pastikan jalur #include sudah benar
Proyek MSBuild
Jika Anda menjalankan build di luar VISUAL Studio IDE, dan build Anda berhasil tetapi IntelliSense salah, ada kemungkinan baris perintah Anda tidak sinkron dengan pengaturan proyek untuk satu atau beberapa konfigurasi. Klik kanan pada simpul proyek di Penjelajah Solusi dan pastikan bahwa semua jalur #include benar untuk konfigurasi dan platform saat ini. Jika jalur identik di semua konfigurasi dan platform, Anda dapat memilih Semua konfigurasi dan Semua platform lalu memverifikasi bahwa jalur sudah benar.
Untuk melihat nilai saat ini untuk makro build seperti VC_IncludePath, pilih menu dropdown Sertakan Direktori . Lalu pilih <Edit> dan pilih tombol Makro .
Proyek Makefile
Untuk proyek Makefile yang didasarkan pada templat proyek NMake, pilih NMake di bawah Properti Konfigurasi, lalu pilih Sertakan jalur pencarian dalam kategori IntelliSense :
Proyek CMake
Untuk proyek CMake, pastikan bahwa jalur #include ditentukan dengan benar untuk semua konfigurasi di CMakeLists.txt. Jenis proyek lain mungkin memerlukan CppProperties.json file. Untuk informasi selengkapnya, lihat Mengonfigurasi navigasi kode dengan CppProperties.json. Pastikan bahwa jalur sudah benar untuk setiap konfigurasi yang ditentukan dalam file.
Jika ada kesalahan sintaks dalam CppProperties.json file, IntelliSense dalam file yang terpengaruh salah. Visual Studio menampilkan kesalahan di Jendela Output.
Masalah pengurai tag
Pengurai tag adalah pengurai C++ fuzzy yang digunakan untuk penjelajahan dan navigasi. Ini cepat tetapi tidak mencoba untuk sepenuhnya memahami setiap konstruksi kode.
Misalnya, ini tidak mengevaluasi makro praprosesor, dan oleh karena itu mungkin salah mengurai kode yang menggunakannya secara ekstensif. Ketika Pengurai Tag menemukan konstruksi kode yang tidak dikenal, mungkin melewati seluruh wilayah kode tersebut.
Ada dua cara umum di mana masalah ini bermanifestasi di Visual Studio:
IDE menawarkan untuk membuat definisi fungsi untuk fungsi yang sudah ditentukan.
Jika bilah navigasi memperlihatkan makro paling dalam, maka definisi fungsi saat ini dilewati:
Cuplikan kode menunjukkan definisi makro untuk do_if yang digunakan di dalam fungsi utama. Pengurai tag tidak memahami makro, jadi alih-alih dropdown navigasi yang menunjukkan bahwa nama fungsi saat ini adalah main, itu menunjukkan nama makro: do_if.
Untuk memperbaiki masalah semacam ini, tambahkan file bernama cpp.hint ke akar direktori solusi Anda. Untuk informasi selengkapnya, lihat Hint Files.
Kesalahan pengurai tag muncul di jendela Daftar Kesalahan .
Memvalidasi pengaturan proyek dengan pembuatan log diagnostik
Untuk memeriksa apakah pengkompilasi IntelliSense menggunakan opsi pengkompilasi yang benar, termasuk Jalur Inklusi dan makro Praprosesor, aktifkan Pencatatan Diagnostik untuk garis perintah IntelliSense.
Buka panel Alat>Opsi dan perluas bagian Semua Pengaturan>Bahasa>C/C++>IntelliSense>Log Diagnostik.
Pilih kotak centang Log informasi diagnostik ke jendela keluaran .
Atur nilai tingkat Pengelogan ke 5 (paling verbose).
Atur nilai filter Pengelogan ke 8 (pengelogan IntelliSense).
Buka dialogOpsi> dan perluas bagian Editor> TeksC/C++>Tingkat Lanjut.
Di grup Pembuatan Log Diagnostik, atur opsi Aktifkan Pembuatan Log ke Benar.
Atur nilai Tingkat Pengelogan ke 5 (paling verbose).
Atur nilai Filter Pengelogan ke 8 (pengelogan IntelliSense).
Pilih OK.
Jendela Output sekarang menunjukkan baris perintah yang diteruskan ke pengkompilasi IntelliSense. Berikut adalah contoh output:
[IntelliSense] Configuration Name: Debug|Win32
[IntelliSense] Toolset IntelliSense Identifier:
[IntelliSense] command line options:
/c
/I.
/IC:\Repo\Includes
/DWIN32
/DDEBUG
/D_DEBUG
/Zc:wchar_t-
/Zc:forScope
/Yustdafx.h
Informasi ini mungkin membantu Anda memahami mengapa IntelliSense memberikan informasi yang tidak akurat. Misalnya, jika direktori Include proyek Anda berisi $(MyVariable)\Include, dan log diagnostik menunjukkan /I\Include sebagai jalur Include, itu berarti bahwa $(MyVariable) tidak dievaluasi, dan dihapus dari jalur Include akhir.
Tentang Pembangunan IntelliSense
Visual Studio menggunakan pengkompilasi C++ khusus untuk membuat dan memelihara database yang mendukung semua fitur IntelliSense. Agar database IntelliSense tetap sinkron dengan kode, Visual Studio secara otomatis meluncurkan build khusus IntelliSense sebagai tugas latar belakang sebagai respons terhadap perubahan tertentu yang dibuat dalam pengaturan proyek atau file sumber.
Namun, dalam beberapa kasus Visual Studio mungkin tidak memperbarui database IntelliSense secara tepat waktu. Misalnya, saat Anda menjalankan git pull perintah atau git checkout , Visual Studio mungkin memerlukan waktu hingga satu jam untuk mendeteksi perubahan dalam file. Anda dapat memaksa pemulaian ulang semua file dalam solusi dengan mengklik kanan pada simpul proyek di Penjelajah Solusi dan memilih Rescan Solution.
Memecahkan masalah kegagalan build IntelliSense
Proses build menggunakan IntelliSense tidak menghasilkan berkas biner, namun tetap bisa gagal. Salah satu kemungkinan penyebab kegagalan adalah file kustom .props atau .targets. Di Visual Studio 2017 versi 15.6 dan yang lebih baru, kesalahan build khusus IntelliSense dicatat di jendela Output. Untuk melihatnya, atur Tampilkan output dari menjadi Solusi:
Pesan kesalahan mungkin menginstruksikan Anda untuk mengaktifkan pelacakan waktu desain:
error: Designtime build failed for project 'E:\src\MyProject\MyProject.vcxproj',
configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME=true and restart
Visual Studio to investigate.
Jika Anda mengatur variabel TRACEDESIGNTIME lingkungan ke true dan memulai ulang Visual Studio, Anda akan melihat file log di %TEMP% direktori, yang mungkin membantu mendiagnosis kegagalan build.
Untuk mempelajari lebih lanjut tentang TRACEDESIGNTIME variabel lingkungan, lihat Roslyn dan kompilasi waktu desain. Informasi dalam artikel ini relevan untuk proyek C++.
Konten terkait
- Fitur Visual C++ IntelliSense