Rujukan Tidak Ditakrifkan kepada Ahli Statik
Dalam coretan kod yang disediakan, pembolehubah ahli statik _frequency ditakrifkan dalam kelas WindowsTimer. Walau bagaimanapun, apabila cuba menyusun kod menggunakan pengkompil silang, ralat berikut berlaku:
undefined reference to `WindowsTimer::_frequency'
Ralat ini menunjukkan bahawa pemaut tidak dapat mengesan definisi pembolehubah ahli statik semasa memaut. Sebabnya ialah pembolehubah ahli statik tidak dimulakan secara automatik oleh pengkompil, dan takrifannya mesti disediakan secara eksplisit dalam fail sumber.
Penyelesaian:
Kepada selesaikan ralat ini, takrif pembolehubah ahli statik _frequency perlu disediakan dalam salah satu fail sumber program. Ini boleh dilakukan dengan menambah baris berikut pada fail .cpp:
LARGE_INTEGER WindowsTimer::_frequency;
Dengan memberikan definisi pembolehubah ahli statik, pemaut boleh berjaya menyelesaikan rujukan kepadanya semasa memaut dan ralat penyusunan akan diselesaikan.
Adalah penting untuk ambil perhatian bahawa percubaan sebelumnya untuk mengubah suai takrifan _frequency dalam pengisytiharan kelas menggunakan _frequency.QuadPart = 0ull atau statik LARGE_INTEGER _frequency.QuadPart = 0ull tidak akan menyelesaikan masalah, kerana pengkompil masih memerlukan takrifan eksplisit bagi pembolehubah ahli statik di luar definisi kelas.
Atas ialah kandungan terperinci Mengapa My Cross Compiler Menghasilkan 'rujukan tidak ditentukan kepada `WindowsTimer::_frequency'' dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!