1. 程式人生 > >出現error LNK2005可能的錯誤

出現error LNK2005可能的錯誤

前言:?(•???•?)?今天要仔細地研究怎樣才能把我的迷宮程式應用在我的DirectX上。但是萬事開頭難啊,我在編輯程式的時候遇到了很多的問題。其中最離奇的是我在編輯程式的時候出現LNK 2005的錯誤。如果說LNK 2019的錯誤讓一年前的我摸不著頭腦的話,那麼LNK 2005這個錯誤在我現在這種情況下也是傷透了腦筋。因為我之前從來沒有出現過這樣的錯誤。

好了,首先我遇到的是這樣的錯誤

Code:
  1. DirectRender.obj : error LNK2005: "struct IDirect3D9 * g_D3D" ([email protected]@[email protected]
    @A) 已經在 MainFrame.obj 中定義   
  2. 1>DirectRender.obj : error LNK2005: "struct IDirect3DDevice9 * g_D3DDevice" ([email protected]@[email protected]@A) 已經在 MainFrame.obj 中定義   
  3. 1>DirectRender.obj : error LNK2005: "struct IDirect3DVertexBuffer9 * g_VertexBuffer" ([email protected]@[email protected]
    @A) 已經在 MainFrame.obj 中定義   
  4. 1>E:/我的臨時工程/試驗畫圖是否成功/Debug/試驗畫圖是否成功.exe : fatal error LNK1169: 找到一個或多個多重定義的符號   
  5. 1>生成日誌儲存在“file://e:/我的臨時工程/試驗畫圖是否成功/試驗畫圖是否成功/Debug/BuildLog.htm”
  6. 1>試驗畫圖是否成功 - 4 個錯誤,2 個警告   
  7. ========== 生成: 0 已成功, 1 已失敗, 0 最新, 0 已跳過 ==========   

這是怎樣引起的呢?其實我是將別人的程式進行本地化(或者說自己來加工一下,哈哈,這很像我們中國的情況啊,沒有智慧財產權的加工)的時候,為了適應自己工程的需求,把程式碼分成幾個檔案進行操作。但是就是出現了這樣的問題。開始我真的是一點也摸不著頭腦,因為上網也沒有相關的資訊進行參考。但是這個問題在我自己隨便複製貼上程式碼的時候就成功地解決了。真是巧啊。那麼為什麼是這樣呢?我在解決問題的時候終於悟出來了。

因為我在定義LPDIRECT3D9、LPDIRECT3DDEVICE9、LPDIRECT3DVERTEXBUFFER9這些變數的時候,把它當做全域性變數進行定義。但是糟糕的是我的全域性變數是放在標頭檔案中。這個標頭檔案可不一般。因為主cpp檔案和功能模組的cpp檔案都要包含它。就是上述錯誤資訊的“DirectRender”和“MainFrame”。因為在分別編譯的時候都已經將他們包括成功了,但是在連線的時候由於都包含了這個全域性變數,系統無法進行取捨。所以電腦不會丟了哪個全域性變數,而是以錯誤的方式告訴我們,它不會處理這樣的情況,叫我們去處理。

 原來如此啊。這個電腦,一點也不智慧。沒有辦法。只好把全域性變數放在某個cpp檔案中了。我把這些全域性變數都放在cpp檔案中,成功!編譯沒有報錯。太好了,我的程式又可以邁進一步了。

P.S. 順便告訴一聲,等我把這個DirectX程式編輯完畢,我就會繼續寫我的黑客教程了。哈哈。

相關推薦

出現error LNK2005可能錯誤

前言:?(•???•?)?今天要仔細地研究怎樣才能把我的迷宮程式應用在我的DirectX上。但是萬事開頭難啊,我在編輯程式的時候遇到了很多的問題。其中最離奇的是我在編輯程式的時候出現LNK 2005的錯誤。如果說LNK 2019的錯誤讓一年前的我摸不著頭腦的話,那麼LNK 2

Android Studio調試出現 Error running app 錯誤

Error running app:Instant Run requires 'Tool | Android | Enable ADB integration‘ to be enabled. 在第一次除錯寫android程式的時候出現的問題。我第一次使用Android

關於windows安裝python過程中出現error 2503 2502錯誤的解決方法

今天在安裝python時,發生了2503 2502的錯誤,去網上查了一下,也有很多類似的錯誤發生,但是我按照他們的方法如同(http://jingyan.baidu.com/article/a501d80cec07daec630f5e18.html)引自百度經驗。 最後會遇

vs工程連結出現error LNK2005...already defined

連結過程,出現很多這樣的錯誤: error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator&l

VC6的工程轉到VC2010或更高版本出現fatal error C1189編譯錯誤的解決方法

代碼 ram 選擇 spa file 線程 c11 靜態庫 block 以前也遇到過,當時解決了沒寫下來,這次正好又遇到了,就順手寫一下吧,別下次又忘記了。 當VC6的工程轉到VC2010或更高版本時編譯出現如下錯誤: c:\program files\micros

安裝Matlab出現Error 1935錯誤解決方法

技術 啟動 運行 十進制 gist log ror oca 下拉菜單 1、開始 - 運行(輸入regedit.exe)- 確定或者回車,打開註冊表編輯器; 2、在打開的註冊表編輯器中找到:HKEY_LOCAL_MACHINE ,並展開:HKEY_LOCAL_MACHINE

VS2010出現FileTracker : error FTK1011編譯錯誤的解決辦法

cnblogs 編譯器 VS2010 error itl log .cn http 出現 VS2010出現FileTracker : error FTK1011編譯錯誤的解決辦法 今天編譯器出現如下警告: 上網查解決辦法: FileTracker : error FTK

sass 出現error text.scss (Line 3: Invalid GBK character "xE9")錯誤

sass中文編碼錯誤造成這個問題的原因是,scss文件裏出現了中文字符,包括註釋也不行解決辦法是打開ruby的安裝文件,找到engine.rb文件,具體路徑如下:Ruby23-x64\lib\ruby\gems\2.3.0\gems\sass-3.5.3\lib\sass然後再所有的require後加入Enc

Windows環境下執行hadoop命令出現Error: JAVA_HOME is incorrectly set Please update D:SoftWarehadoop-2.6.0confhadoop-env.cmd錯誤的解決辦法(圖文詳解)

scala software ksum cal .com from 問題 jdk sun     不多說,直接上幹貨! 導讀   win下安裝hadoop  大家,別小看win下的安裝大數據組件和使用    玩過dubbo和disc

Maven打包時出現“Show Console View”錯誤彈出框,錯誤詳情為“An internal error has occurred. java.lang.NullPointerException”的解決方法

開開 exceptio 技術 point org ali ava src cor 今天為項目打包時出現了下面的錯誤提示: 打開Details裏面寫的是“An internal error has occurred. java.lang.NullPointerExcepti

IDEA跑代碼出現Error(7,8) ***App is already defined as object App object App extends Application { 錯誤的解決辦法(圖文詳解)

機器 strong ima 分析 挖掘 extend AS 收獲 qq群   不多說,直接上幹貨! 問題現象 Error(7,8) App is already defined as object App

執行HBase shell時出現ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet錯誤解決辦法(圖文詳解)

cep ESS 關註 align comm util code ade dap   不多說,直接上幹貨! [kfk@bigdata-pro01 bin]$ jps 1968 NameNode 2385 ResourceManager 2259 Jou

Ubuntu下連接mysql出現 ERROR 1698 (28000): Access denied for user 'root'@'localhost'錯誤解決方法

use ces 數據 表示 vim amp https 創建 sel ubuntu版本:18.04 mysql版本:5.7.24 ubuntu安裝mysql後用root賬戶登入會出現問題:ERROR 1698 (28000): Access denied

關於android studio 出現Error:Execution failed for task ':app:preDebugAndroidTestBuild'. 的解決辦法 前段時間開啟Android studio 在build過程中總會出現以下錯誤

前段時間開啟Android studio 在build過程中總會出現以下錯誤 Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency 'co

AS匯入一個工程出現Error:please select Android SDK的錯誤

匯入一個新的工程出現:Error:please select Android SDK 的錯誤 現象描述:點選執行程式按鈕,彈出一個“Edit Configure”的對話方塊,最下面報:Error:please select Android 

[Visual Studio C++] [MFC 除錯錯誤]:error LNK2005: "class std::...已經在 Multimediatimer.obj 中定義。

1.編譯問題描述: error LNK2005: "class std::basic_ofstream<char,struct std::char_traits<char> > Sim_Data_Write" ([email protected]@[email&

在win7 64上用npm安裝phantomjs時出現Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE錯誤的解決方法。

解決方案在stackoverflow上找到的,關掉strict-ssl即可,如下: npm config set strict-ssl false 用完之後恢復: npm config set strict-ssl true http://stackoverflow

Windows7下安裝ENVI4.7出現Error 1935”錯誤的解決方法

Windows7(旗艦版,32位)下安裝ENVI4.7時,會出現“Error 1935”錯誤,如圖所示, 網上查了好多方法,但是沒能解決問題,最後經過多次試驗,終於安裝成功了,現總結如下: 主要有兩步: 第1步、修改登錄檔大小限制;  修改方法:   開始→執行輸

連結錯誤nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??

最近在VC 6.0上作業,有幾個地方都遇到一個十分惱人的錯誤。就是出現下述的錯誤: Linking... nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" ([email