在vs2010中編譯log4cxx-0.10.0詳細方法(從下載、編譯、解決錯誤詳細介紹)
http://blog.sina.com.cn/s/blog_a459dcf501013tbn.html
在vs2010中,編譯 是在 生成菜單 下的最後一個
鏈接 是 在 生成菜單 下的生成 或者生成解決方案
運行 是 在 調試菜單 下的開始執行(不調試)
圖標你就可以參照這些對應的看了
或者你在工具欄上右擊選擇 生成工具欄就可以把這些按鈕弄出來了
編譯需要這麼弄:工具->自定義->命令頁面下類別選擇生成,然後在命令欄裡把編譯按鈕拖到你想放的工具欄上就可以了
今天寫了一個小程序,然後碰到了“Error LNK2001 無法解析的外部符號”這個問題,一直解決不了,後來上網搜了下,發現這裡面的關於這類錯誤的內容歸納比較齊全,就摘下來作為參考了。
原文: wenku.baidu.com/...a.html
VC++時經常會遇到鏈接錯誤LNK2001,該錯誤非常討厭,因為對於編程者來說,最好改的錯誤莫過於編譯錯誤,而一般說來發生連接錯誤時,編譯都已通過。產生連接錯誤的原因非常多,尤其LNK2001錯誤,常常使人不明其所以然。如果不深入地學習和理解VC++,要想改正連接錯誤LNK2001非常困難。 初學者在學習VC++的過程中,遇到的LNK2001錯誤的錯誤消息主要為: unresolved external symbol “symbol”(不確定的外部“符號”)。如果連接程序不能在所有的庫和目標文件內找到所引用的函數、變量或標簽,將產生此錯誤消息。一般來說,發生錯誤的原因有兩個:一是所引用 的函數、變量不存在、拼寫不正確或者使用錯誤;其次可能使用了不同版本 的連接庫。
以下是可能產生LNK2001錯誤的原因:
一.由於編碼錯誤導致的LNK2001。
1.不相匹配的程序代碼或模塊定義(.DEF)文件能導致LNK2001。例如, 如果在C++ 源文件內聲明了一變量“var1”,卻試圖在另一文件內以變量 “VAR1”訪問該變量, 將發生該錯誤。
2.如果使用的內聯函數是在.CPP文件內定義的,而不是在頭文件內定義將導致LNK2001錯誤。
3.調用函數時如果所用的參數類型同函數聲明時的類型不符將會產生LNK2001。
4.試圖從基類的構造函數或析構函數中調用虛擬函數時將會導致LNK2001。
5.要注意函數和變量的可公用性,只有全局變量、函數是可公用的。靜態函數和靜態變量具有相同的使用范圍限制。當試圖從文件外部訪問任何沒有在該文件內聲明的靜 態變量時將導致編譯錯誤或LNK2001。函數內聲明的變量(局部變量) 只能在該函數的范圍內使用。C++ 的全局常量只有靜態連接性能。這不同於C,如果試圖在 C++的多個文件內使用全局變量也會產生LNK2001錯誤。一種解決的方法是需要時在 頭文件中加入該常量的初始化代碼,並在.CPP文件中包含該頭文件;另一 種 方法是使用時給該變量賦以常數。
二.由於編譯和鏈接的設置而造成的LNK2001
1.如果編譯時使用的是/NOD(/NODEFAULTLIB)選項,程序所需要的運行庫和MFC庫在連接時由編譯器寫入目標文件模塊, 但除非在文件中明確包含這些庫名,否 則這些庫不會被鏈接進工程文件。在這種情況下使用/NOD將導 致錯誤LNK2001。
2.如果沒有為wWinMainCRTStartup設定程序入口,在使用Uni......余下全文>>