Costruisco OpenCV 3.0 dalla fonte. E con il repository contrib per alcuni moduli extra. E ho configurato manualmente il mio progetto VS2013 per utilizzare i file lib generati.
Il mio codice è semplice per ora:
#include "opencv2\core\core.hpp" #include "opencv2\imgcodecs\imgcodecs.hpp" int _tmain(int argc, _TCHAR* argv[]) { cv::Mat image = cv::imread("img.jpg"); return 0; }
Ma mi ha dato questi errori quando nella versione della community di VS 2013:
Vedo thread simili , hanno detto che è causato dal problema x86 / x64. Ma il mio progetto è già x86. E l’OpenCV che ho creato si occupa anche di x86 (vedi sotto). Quale motivo potrebbe essere?
Il progetto di installazione OpenCV 3.0 genera la seguente directory lib:
Quindi è davvero uno x86
.
Il mio percorso di lib è configurato per il percorso sopra:
E ho aggiunto tutti i file *d.lib
.
E di seguito è il Configuration Manager
del mio progetto VC
Quindi è davvero anche x86
.
Dove potrebbe essere sbagliato?
Ho cercato manualmente la funzione fastFree()
. È definito nel file opencv_core300d.lib
. Io uso il comando dumpbin /symbols
per controllare i simboli. E trovo che il suo nome sia storpiato esattamente come [email protected]@@[email protected]
Quindi, perché non può essere trovato?