Rumah > pembangunan bahagian belakang > C++ > Mengapa Saya Mendapat Simbol Luaran yang Tidak Selesai __imp__fprintf dan __imp____iob_func dengan SDL2?

Mengapa Saya Mendapat Simbol Luaran yang Tidak Selesai __imp__fprintf dan __imp____iob_func dengan SDL2?

Linda Hamilton
Lepaskan: 2024-11-28 15:50:15
asal
708 orang telah melayarinya

Why Am I Getting Unresolved External Symbols __imp__fprintf and __imp____iob_func with SDL2?

Simbol Luaran Tidak Selesai: __imp__fprintf dan __imp____iob_func dengan SDL2

Dalam pengaturcaraan, menghadapi simbol luaran yang tidak dapat diselesaikan ialah isu biasa yang ditunjukkan sebagai ralat pemautan. Dua simbol khusus yang kerap menyebabkan ralat sedemikian dengan SDL2 ialah __imp__fprintf dan __imp____iob_func.

Simbol luaran yang tidak dapat diselesaikan __imp__fprintf timbul kerana fprintf, yang digunakan untuk pencetakan berformat, terletak dalam perpustakaan pautan dinamik (DLL). Penyusun biasanya memaut ke perpustakaan ini pada masa jalan, tetapi kadangkala penyambung tidak dapat mencari DLL yang sesuai. Ini boleh berlaku apabila DLL tidak terdapat dalam laluan sistem atau apabila versi yang salah dipautkan.

Simbol luaran yang tidak dapat diselesaikan __imp____iob_func, sebaliknya, berkaitan dengan input/output standard C (I/O ) fungsi. Khususnya, Visual Studio 2015 memperkenalkan perubahan pada takrifan fungsi I/O seperti stdin, stdout dan stderr. Fungsi ini kini ditakrifkan menggunakan __acrt_iob_func, manakala dalam versi terdahulu, ia ditakrifkan menggunakan __iob_func. Ini boleh menyebabkan ralat pemautan apabila menggunakan pustaka atau kod yang telah disusun dengan versi Visual Studio yang lebih lama.

Untuk menyelesaikan ralat simbol luaran yang tidak dapat diselesaikan ini, anda boleh mengambil langkah berikut:

  • Pastikan DLL yang diperlukan, seperti msvcrt.dll untuk __imp__fprintf, terdapat dalam sistem laluan.
  • Sahkan bahawa anda memaut ke versi perpustakaan SDL2 dan DLL yang betul.
  • Jika __imp____iob_func adalah puncanya, tentukan sendiri __iob_func dalam kod anda untuk mengembalikan tatasusunan yang mengandungi {stdin,stdout,*stderr}.
  • Untuk menangani ralat dengan fungsi stdio lain, tambah legacy_stdio_definitions.lib pada pilihan pemaut.

Dengan mengikuti ini langkah, anda boleh menangani secara berkesan ralat simbol luaran yang tidak dapat diselesaikan yang berkaitan dengan __imp__fprintf dan __imp____iob_func apabila bekerja dengan SDL2 dalam Visual Studio 2015.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Simbol Luaran yang Tidak Selesai __imp__fprintf dan __imp____iob_func dengan SDL2?. 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