Rumah > pembangunan bahagian belakang > C++ > Mengapakah memautkan program C berdiri bebas dengan gcc menghasilkan rujukan yang tidak ditentukan kepada `__gxx_personality_v0`?

Mengapakah memautkan program C berdiri bebas dengan gcc menghasilkan rujukan yang tidak ditentukan kepada `__gxx_personality_v0`?

Linda Hamilton
Lepaskan: 2024-11-20 14:17:13
asal
1066 orang telah melayarinya

Why does linking a free-standing C   program with gcc result in an undefined reference to `__gxx_personality_v0`?

Apabila menyusun dan memautkan atur cara C berdiri bebas menggunakan gcc, ralat pemaut boleh berlaku disebabkan rujukan yang tidak ditentukan kepada __gxx_personality_v0. Untuk memahami tujuan simbol ini, mari kita terokai peranannya dalam konteks mesej ralat yang anda berikan.

Apakah peranan __gxx_personality_v0?

Simbol __gxx_personality_v0 digunakan dalam jadual melonggarkan tindanan, yang boleh dilihat dalam output pemasangan melonggarkan tindanan. Menurut Itanium C ABI, ia dirujuk sebagai Rutin Keperibadian.

Jika tiada pengecualian, mentakrifkan simbol ini sebagai penunjuk kekosongan NULL global akan "berfungsi" kerana tiada pengecualian akan dilemparkan. Walau bagaimanapun, percubaan untuk membuang pengecualian akan mengakibatkan tingkah laku yang tidak dijangka.

Penyelesaian alternatif:

  • Lumpuhkan pengecualian menggunakan -fno-exceptions.
  • Jika RTTI juga tidak digunakan, tambahkan -fno-rtti.
  • Untuk atur cara menggunakan pengecualian, susun dengan g dan bukannya gcc, yang secara automatik menyertakan perpustakaan yang diperlukan (-lstdc ).

Atas ialah kandungan terperinci Mengapakah memautkan program C berdiri bebas dengan gcc menghasilkan rujukan yang tidak ditentukan kepada `__gxx_personality_v0`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan