天天看點

Visual Studio編譯時 error LINK

HelloWin.obj : error LNK2019:無法解析的外部符号 [email protected],該符号在函數 "long __stdcallWndProc(struct HWND__ *,unsigned int,unsigned int,long)"([email protected]@[email protected]@[email protected])中被引用

D:\MyProgramTest\Hellowin\Debug\Hellowin.exe : fatal errorLNK1120: 1個無法解析的外部指令

解決辦法:

(1)加上#pragma comment(lib,"winmm.lib")

=================================================================

error LNK2019:無法解析的外部符号 _main,該符号在函數 ___tmainCRTStartup中被引用

這個問題表明你建立的是一個main類型函數(控制台程式),而你的程式中有視窗程式,顯然是個win32函數

解決方法:

項目-屬性-連結器-系統-子系統-控制台(/SUBSYSTEM:CONSOLE) 

改為:項目-屬性-連結器-系統-子系統-視窗(/SUBSYSTEM:WINDOWS) 

error LNK2019: 無法解析的外部符号 [email protected],該符号在函數 ___tmainCRTStartup 中被引用

解決方法:

項目-屬性-連結器-系統-子系統-視窗(/SUBSYSTEM:WINDOWS)

改為:項目-屬性-連結器-系統-子系統-控制台(/SUBSYSTEM:CONSOLE) 

=================================================================

INK :fatal error LNK1104:無法打開檔案“C:/Program.obj”

看看 工程屬性 ---- 連結 --- 輸入 -- 附加依賴項   ......

要使用全路徑要用雙引号把路徑框起來~~這裡我要使用

"C:/ProgramFiles/vc6/VC98/LIB/d3dx9.lib"

要注意的是兩個項目之間是要用空格分開的,注意别打成中文的空格了

=================================================================

fatal error LNK1169: 找到一個或多個多重定義的符号

申明全局變量,全局函數一定要在cpp中申明

其他類引用該全局變量就include該cpp的h檔案

然後extern一下就好了,否則容易出現該重複定義錯誤

這個"容易"是如何解釋的呢?

例如A.h中如果申明了全局變量intGlobal;

在B.h中include"A.h"

             extern int Global;

則你include A.h相當于把A.h中全局變量的申明也include進來了,編譯器就會認為是重複定義,是以全局變量和函數申明一定要在cpp中

當.h檔案裡有函數實作時

VS2005編譯器報此錯誤。

解決方法:

1.在.h裡的函數聲明前加inline。

2.将全局變量放到.CPP檔案中聲明。

繼續閱讀