2012-03-11 10 views
8

Esta compilación de OpenCV me funcionaba hace algunas noches. Estoy intentando ejecutar el archivo de ejemplo grabcut.cpp que se proporciona con los ejemplos de OpenCV, así que configuré un proyecto rápido y obtuve el archivo cpp. Luego, configuré todas las configuraciones estándar y obtuve este error al construir.Error de enlazador extraño que se vincula a opencv ... "LNK1107: archivo no válido o dañado: no se puede leer en 0x2E8"

error LNK1107: invalid or corrupt file: cannot read at 0x2E8 
opencv_calib3d231.dll 

¿Qué significa esto?

+0

directamente relacionado: https://msdn.microsoft.com/en-us/library/0hctctk.aspx – vaxquis

Respuesta

24

Si tuviera que adivinar (basado parcialmente en the documentation of that error), diría que está intentando vincular directamente con la DLL.

Probablemente desee vincularlo con su archivo .lib correspondiente.

+0

Siento que siempre he vinculado con archivos DLL antes ... ¿Eso no es normal? – Jim

+0

Depende del compilador; MinGW, por ejemplo, parece ser capaz de enlazar directamente con archivos DLL. – user1071136

+0

Hmm, no sé acerca de MinGW. Quizás tienes razón. Podría hacer algo similar a lo que se podría hacer con las herramientas de Visual Studio para generar un .def y, por lo tanto, un archivo .lib a partir de una DLL. Sin embargo (a menos que alguien pueda decirme lo contrario), no creo que Visual Studio permita la vinculación directa con un archivo DLL. Debe utilizar un archivo .lib o cargar dinámicamente el archivo DLL en su código. – Bart

Cuestiones relacionadas