Ho un progetto che collega a una mezza dozzina di librerie, tra cui OpenCV.
Poiché la variante di rilascio si interrompe, mentre Debug funziona correttamente (solo molto più lentamente), volevo compilare il mio progetto nella configurazione RelWithDebInfo
.
Tuttavia, la versione Debug
delle librerie OpenCV viene inclusa invece di Release
(OpenCV non ha la variante RelWithDebInfo
). Questo fa sì che collega errori come:CMake RelWithDebInfo collegamenti a Debug libs
opencv_core249d.lib (alloc.obj) errore LNK2038: mancata corrispondenza rilevata per 'RuntimeLibrary': valore 'MDd_DynamicDebug' non corrisponde valore 'MD_DynamicRelease' in MyProject.obj
Come risolvere questo problema?
Risolvo questo problema non utilizzando mai la destinazione INSTALL in Windows. Puntare invece le variabili PROJECTNAME_DIR nella cartella radice in cui è stata creata la libreria. Inoltre, creo tutte le dipendenze con il compilatore che sto usando e non uso mai pacchetti binari. Se si crea opencv dal sorgente, si elimina ancora la configurazione RelWithDebInfo? – drescherjm
Ho costruito OpenCV dal sorgente. Non ho avuto questo problema con OpenCV precompilato. –