來自---------------------
原文:https://blog.csdn.net/qtbmp/article/details/7273191?utm_source=copy
win7 下,安裝的VS2008,然后搭配opencv2.3.1運行,報錯為:fatal error LNK1112: 模塊計算機類型“X86”與目標計算機類型“x64”沖突 。通過網上查詢,給錯的答案大同小異,但是依然有很多朋友按照網上的答案無法解決這個問題,一下是我的解決方案,僅供參考:
1、原因:win7下的64位系統,在運行程序的時候,需要的DLL必須是64位系統編譯的,VS2008也必須在安裝的時候,選擇了64位編譯的支持。如果安裝的時候,已經選擇了,那么出現該問題的解決辦法,安裝網上常規的思路即可。既:
(1)右鍵項目名,點擊屬性,彈出項目屬性頁,找到鏈接器----高級,修改右側的目標計算機,選擇有X64的那個選項。
(2)右鍵項目名,選擇清理解決方案,清理完之后選擇X64平台編譯器,然后重新生成解決方案,便可以調試成功。
2、如果如果在選擇平台的下拉列表里找不到x64,則說明系統沒有安裝支持64位編譯,則按照一下方式安裝:
在控制面板添加刪除程序中,選擇VS2008,點擊卸載,出現修復選項,對VS2008修復,即可重新安裝插件,或者直接安裝文件VS2008SP1CHSX1512981.iso,重新安裝一遍也可以出現如下界面:
選擇圖中畫紅框的選項即可。
3、如果此時問題依然沒有解決,則斷定是系統包含的DLL文件是win32下編譯的,則,需要把DLL換成64位系統編譯的。比如opencv2.3.1,之前編譯的就是win32下編譯的,則需要重新編譯,具體步驟如下:
(1)、運行CMake2.8,點 configure,在彈出的對話框內選擇 Visual Studio 9 2008 win64,這個地方需要注意,很多資料上面在介紹opencv配置的時候,都沒有提及64位的選項問題,大家都是默認選擇 Visual Studio 9 2008,沒有選后面帶win64的,導致make出來的文件沒法使用。完成后選擇“Generate”。
(2)、這時候,打開OpenCV.sln,分別在Debug和Release下生成,注意配置管理器里面選擇x64平台,不然編譯出來的還是不能使用。
(3)、編譯完成之后,配置后DLL和Lib的路徑,就不會再出以上的錯誤了。