我在windows10 64位安裝了opencv 3.0。我創建了Visual Studio中的社區2017年的C++項目,並沒有在this link OpenCV的文件(本地方法中提供所有這些步驟分別是: 1-創建環境變量:opencv 3.0 visual studio社區2017彙編LINK錯誤
OPENCV_DIR C:\Program Files\opencv\build\x86\vc11
隨着我在用戶和系統路徑添加如下
%OPENCV_DIR%\bin
2。在我的項目,我在屬性添加 - >C/C++ - >額外包含庫:
C:\Program Files\opencv\build\include
3- 屬性 - >鏈接 - >一般:
$(OPENCV_DIR)\lib
$(OPENCV_DIR)\staticlib
我包括staticlib因爲最初的編譯器沒有找到opencv_core300d.lib而這一塊存在staticlib,所以我添加了它。
檢查YES爲使用庫的依賴項
4- 屬性 - >鏈接 - >進入:
opencv_core300d.lib
opencv_highgui300d.lib
opencv_imgproc300d.lib
opencv_ml300d.lib
opencv_ts300d.lib
與Herited值:
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
我得到了所有相關的中opencv_core300d.lib相關.obj文件值之間的不匹配更多800個錯誤:
1>Source.cpp
1>opencv_core300d.lib(alloc.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(alloc.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(stl.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(stl.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(matrix.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(matrix.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(opencv_core_pch.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(opencv_core_pch.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(system.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
我試圖通過檢查類似的答案類似的錯誤,並根據解決問題this answer這是由於到不同版本的編譯器。如果是這樣,如何糾正?用於測試的OpenCV
示例代碼的工作:
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if (argc != 2)
{
cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
Mat image;
image = imread(argv[1], IMREAD_COLOR); // Read the file
if (image.empty()) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
imshow("Display window", image); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
}
我需要幫助! 謝謝。
是否使用Visual Studio 2017或至少2015年構建opencv?這是用於調試配置。 'opencv_core300d.lib'不適用於發佈版本。 – drescherjm
爲什麼3.0自從去年12月以來有3.2版本可用?你建立了自己的副本嗎? 2015年的軟件包不太可能是用幾個月前的編譯器構建的。 –
您正在嘗試鏈接[編譯器]的不同版本的庫(至少這是'_MSC_VER'的錯誤)[wikipedia](https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B% 2B#Internal_version_numbering)你可以看到使用的版本...在你的情況下,一個是用Visual Studio 2013編譯器編譯的,另一個是用2015編譯的。另一個錯誤是你用一個不同的標誌編譯它(靜態調試vs動態調試)查看[this](https://stackoverflow.com/questions/16830842/using-static-libraries-instead-of-dynamic-libraries-in-opencv)解決方案 – api55