ld.exe: Kesalahan DWARF: tidak dapat menemukan spesifikasi variabel pada offset 101cee

Aug 20 2020

Saya mendapatkan output besar dengan pesan berikut (hanya dibedakan dengan alamat hex):

ld.exe: DWARF error: could not find variable specification at offset 101cee

Apa arti kesalahan ini secara umum?

Ini tidak terjadi saat kompilasi rilis build. Hanya debug build.

Jawaban

3 Chameleon Aug 20 2020 at 18:24

Pada dasarnya saya baru saja menemukan solusinya. Saya menempatkannya di sini, karena saya tidak menemukan pertanyaan seperti itu di StackOverflow. Tolong jawab jika ada posisi saya yang salah.

Saya mengkompilasi perpustakaan sebagai perpustakaan statis, tetapi tanpa #definearahan yang benar , semua fungsi yang diekspor mendapatkan __declspec(dllexport)awalan. Jadi nama fungsi functionmenjadi __imp_function.

Jadi, itu hanya file undefined reference to __imp_function.

Tapi kenapa begitu terenkripsi? Dan mengapa rilis build dikompilasi dengan benar?

Saya percaya bahwa ini terjadi karena -fltoopsi yang melakukan pengoptimalan waktu tautan dan menyimpan semua kode pustaka di dalam file .a, jadi, tidak diperlukan referensi (tidak gagal).