Saya menggunakan Microsoft Visual Studio 2011 Professional Beta
Saya mencoba menjalankan file OpenCV C ++ ( http://opencv.willowgarage.com/wiki/Welcome ) yang telah saya kompilasi menggunakan cMake & Visual Studio Complier.
Namun ketika saya pergi untuk men-debug proyek, saya mendapatkan 600+ kesalahan yang sebagian besar adalah:
error LNK2026: modul tidak aman untuk image SAFESEH.
Tampaknya file-file ini ada dalam proyek opencv_ffmpeg tetapi saya tidak dapat menemukannya, saya telah melihat halaman Safe Exception Handlers safeseh di halaman bantuan Microsoft tetapi saya tidak dapat menemukan jawaban yang pasti.
Saya bertanya-tanya apakah ada orang lain yang mengalami masalah ini dan apakah mereka berhasil memperbaikinya.
c++
visual-studio
visual-c++
Aaron Thompson
sumber
sumber
Jawaban:
Dari komentar:
sumber
Menonaktifkan opsi "Gambar memiliki Penangan Pengecualian Aman" di properti Proyek -> Properti Konfigurasi -> Linker -> tab Lanjutan membantu saya.
sumber
Jika Anda mendapatkan kesalahan ini saat membangun ZLIB di Visual Studio di sini adalah solusinya. Cari
contrib\masmx86\bld_ml32.bat
dan tambahkan/safeseh
sebagai opsiSebelum
ml /coff /Zi /c /Flmatch686.lst match686.asm ml /coff /Zi /c /Flinffas32.lst inffas32.asm
Setelah
ml /safeseh /coff /Zi /c /Flmatch686.lst match686.asm ml /safeseh /coff /Zi /c /Flinffas32.lst inffas32.asm
sumber
.asm
file di penjelajah solusi.Cara lain adalah dengan menambahkan beberapa handler SEH (kosong misalnya) ke file asm dan mengkompilasinya dengan
/safeseh
opsi, kemudian mengkompilasi kode lain secara normal dengan/SAFESEH:YES
opsi compiler.Penangan SEH kosong:
sumber
/safeseh
sepertinya cukup. Ini benar-benar harus diberi suara positif!Jarak tempuh Anda mungkin berbeda, tetapi tidak satu pun dari saran di atas yang berhasil untuk saya (meskipun saya tidak mencoba menjalankan penangan pengecualian asm saya sendiri).
Apa yang berhasil adalah memilih build target Release / x64.
Saya menjalankan Windows 10 pada mesin 64-bit, dan menggunakan Visual Studio 2015.
Rilis target / Win32 juga berfungsi. Saya kira yang utama adalah memilih "Rilis".
sumber