1. 程式人生 > >VS error LNK2001無法解析的外部符號_CrtDbgReportW

VS error LNK2001無法解析的外部符號_CrtDbgReportW

本文提供的只是可能的一種解決方案,一種解決這個錯誤的思路,並不一定符合所有情況。

最近經常遇到這個錯誤,總是在解決後忘記怎麼解決的,下次又花費很多時間去找原因。今天,做個筆記,嗯。

首先,列出原因:

這裡寫圖片描述

其次,給出解決方法:

這是解決前問題根源:

這裡寫圖片描述

這是解決後:

這裡寫圖片描述

為什麼會這樣呢?

因為opencv版本的原因。我是opencv2.4.3的專案在2.4.13下執行,所以需要改成多執行緒除錯(/MTd),而對於3.x的版本,這裡就應該是多執行緒DLL(/MD)(這一點也是經過血淚教訓的)。

這裡寫圖片描述

至於是不是2.4.3對應著多執行緒(/MT)我就不是太清楚了,估計可能性很大。

突然發現,並不是說opencv版本對應著不同的多執行緒選項,可能是專案建立時所處的環境導致的這個錯誤。也存在2.4.13對應多執行緒(/MT)的,我後來建的一個專案就是這樣