Ralat kompilasi C++: Objek tidak ditentukan, bagaimana untuk menyelesaikannya?
Dalam proses pembangunan pengaturcaraan menggunakan C++, kita sering menemui mesej ralat "Objek tidak ditakrifkan". Mesej ralat ini biasanya muncul semasa fasa pemautan, memberitahu kami bahawa pemaut tidak menemui definisi simbol tertentu. Jadi bagaimana sebenarnya ralat ini berlaku dan bagaimanakah ia boleh diselesaikan?
Punca
Ralat yang tidak ditentukan objek biasanya ditemui semasa memautkan program Sebabnya ialah simbol (takrif, pengisytiharan, fungsi atau pembolehubah) tidak ditakrifkan atau dipautkan secara normal. Simbol ini mungkin ditakrifkan dalam fail atau perpustakaan lain, tetapi pemaut tidak dapat menemuinya.
Ringkasnya, jika kita mentakrifkan fungsi dalam fail sumber, tetapi nama fungsi tidak dapat ditemui semasa memautkan atur cara, ralat tidak ditentukan objek akan berlaku. Begitu juga, jika kami hanya mengisytiharkan fungsi dalam fail pengepala tanpa mentakrifkan fungsi dalam mana-mana fail, pemaut tidak akan dapat mencari pelaksanaan khusus fungsi dan akan menjana ralat tidak ditentukan objek sekali lagi.
Penyelesaian
Fail pengepala adalah tempat fungsi dan kelas ditakrifkan Jika fungsi atau kelas dalam fail pengepala tidak ditakrifkan, ia tidak boleh disusun dan dipautkan. Pada ketika ini, kita harus terlebih dahulu menyemak fail pengepala untuk memastikan semua fungsi telah ditakrifkan dengan betul.
Dalam fail sumber, kita perlu mengesahkan bahawa simbol yang perlu dipautkan telah ditentukan. Sebagai contoh, jika kita mentakrifkan fungsi dalam fail sumber, kita perlu memastikan ia ditakrifkan sebelum menggunakannya.
Apabila menyusun menggunakan baris arahan, anda perlu menyemak sama ada pilihan kompilasi adalah betul. Jika fail objek atau fail pustaka ditinggalkan, ralat pautan mungkin berlaku. Dalam rangka kerja seperti MFC, anda juga perlu mengesahkan sama ada fail perpustakaan ditambahkan pada senarai perpustakaan terpakai.
Jika kami menggunakan fail pustaka luaran, kami perlu menyemak sama ada fail perpustakaan telah ditambahkan pada laluan carian pemaut. Jika nama fail pustaka dimasukkan dengan salah, pemaut akan menggesa ralat tidak ditentukan objek apabila ia tidak menemuinya.
Dalam C++, apabila menggunakan perpustakaan yang berbeza, mungkin terdapat beberapa fungsi atau kelas dengan nama yang sama Pada masa ini, kita boleh menggunakan ruang nama untuk membezakannya dan mengelak daripada menggunakan nama yang sama.
Ringkasan
Objek tidak ditentukan adalah salah satu ralat biasa dalam proses penyusunan dan pemautan C++, tetapi penyelesaiannya mudah sahaja .
Atas ialah kandungan terperinci Ralat kompilasi C++: objek tidak ditentukan, bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!