1. 程式人生 > >fatal error LNK1112: 模組計算機型別“X86”與目標計算機型別“x64”衝突——我的解決方案

fatal error LNK1112: 模組計算機型別“X86”與目標計算機型別“x64”衝突——我的解決方案

 win7 下,安裝的VS2010,然後搭配opencv2.4.3執行,報錯為:fatal error LNK1112: 模組計算機型別“X86”與目標計算機型別“x64”衝突 。通過網上查詢,給錯的答案大同小異,但是依然有很多朋友按照網上的答案無法解決這個問題,以下是我的解決方案

1、原因:win7下的64位系統,在執行程式的時候,需要的DLL必須是64位系統編譯的,VS2008也必須在安裝的時候,選擇了64位編譯的支援。如果安裝的時候,已經選擇了,那麼出現該問題的解決辦法,安裝網上常規的思路即可。既:

       (1)右鍵專案名,點選屬性,彈出專案屬性頁,找到連結器----高階,修改右側的目標計算機,選擇有X64的那個選項。
        (2)右鍵專案名,選擇清理解決方案,清理完之後選擇X64平臺編譯器,然後重新生成解決方案,便可以除錯成功。

注:按照網上搜到的方法執行完以上步驟後,我的程式仍然報錯,只是X86和X64的位置換了一下。。汗死。。於是折騰出一下步驟:

2、如果此時問題依然沒有解決,則可能是系統包含的DLL檔案是win32下編譯的,則,需要把DLL換成64位系統編譯的。比如opencv2.3.1,之前編譯的就是win32下編譯的,則需要重新編譯,具體步驟如下:

      (1)、右鍵解決方案->屬性,將平臺選為X64,若無此選項,則點選配置管理器,選擇X64平臺,若無則新建一個X64平臺並選中。


       (2)、接著,右鍵專案名稱點清理,重新生成,注意配置管理器裡面選擇x64平臺,不然編譯出來的還是不能使用。   

         (3)、編譯完成之後,配置DLL和Lib的路徑後,就不會再出以上的錯誤了。