VS開發工具學習

MSVCRTD.lib(crtexe.obj) : error LNK2019: 無法解析的外部符號 _main,該符號在函數 ___tmainCRTStartup 中被引用

把項目-屬性-連接器-系統-子系統中把控制檯改爲windows

-------------------------------------------------------------------------------------------------------------------

MessageBox中不能把字符串賦值個它的參數不能將參數 2 從“const char [11]”轉換爲“LPCWSTR”

把項目—屬性—常規—字符集把使用 Unicode 字符集改爲使用多字節字符集

-------------------------------------------------------------------------------------------------------------------

console程序支持MFC的類

在Project-> Setting-> General   中選Use   MFC   in   a   Shared   DLL或者   Use   MFC   in   static   Library 
並把project-> Setting-> C/C++   中的Use   runing-time   library   由Single-Threaded改爲相應的 Multithreaded 

在MFC console 程序中一定要指定多線程版的C runtime 函數庫,
所以必須使用/MT 選項。如果不做這項設定,會出現這樣的聯結錯誤:
Microsoft (R) 32-Bit Incremental Linker Version 5.00.7022
Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
/out:mfccon.exe
mfccon.obj
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
mfccon.exe : fatal error LNK1120: 2 unresolved externals
表示它找不到__beginthreadex 和__endthreadex

Visual C++ 編譯器提供下列選項,讓我們決定使用哪一個C runtime 函數庫:
/ML Single-Threaded(static)
/MT Multithreaded(static)
/MD Multithreaded DLL(dynamic import library)
/MLd Debug Single-Threaded(static)
/MTd Debug Multithreaded(static)
/MDd Debug Multithreaded DLL(dynamic import library)

------------------------------------------------------------------------------------------------------------

VS2008在win7下不時出現Microsoft Incremental Linker已停止工作

這個是因爲設置有問題。解決方法如下:
項目->屬性->鏈接器->常規 下面的“啓用增量鏈接”,將“是(/INCREMENTAL)”改爲“否(/INCREMENTAL:NO)”。
不過這又引入了另外一個警 告:FormatCom.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由於“/INCREMENTAL:NO”規範)
選擇項目,屬性->配置屬性 ->C/C++,修改“調試信息格式”爲“程序數據庫(/Zi)”即可。

轉載自:http://hi.baidu.com/jax_lee/blog/item/f170691db6735a0fb8127b91.html

-------------------------------------------------------------------------------------------------------------------------------

在學習CG提供的example時,遇到:

error LNK2001: 無法解析的外部符號 ___GLEW_VERSION_1_1
error LNK2019: 無法解析的外部符號 _glewInit,該符號在函數 _main 中被引用
error LNK2001: 無法解析的外部符號 ___wglewSwapIntervalEXT

的錯誤,而我明明已經加載了glew庫,不明其因,上網百度之得到解決方法如下:

注意提供的解決方案,例如OpenGL_Basic_2008.sln,打開這個解決方案後可以看到前面27個project是示例,而最後一個是glewlib。打開解決方案的屬性頁,啓動項目->單啓動項目,glewlib。項目依賴項,每個示例都要在依賴項glewlib前面打勾。參考這個解決方案,當編譯單個示例project時,也要在解決方案中添加glewlib這個project(見examples/opengl/glew文件夾),添加後按照上面的方法設置屬性頁就可以了。

轉載自:http://topic.csdn.net/u/20100604/20/6af2efd4-c0f3-4c4f-ae60-199ad36a99e4.html

--------------------------------------------------------------------------------------------------------------------------------------

msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) 已經在 example2.obj 中定義
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(class.................

解決方法:

    調用者的運行時庫要與外部庫一致。通過C/C++->CodeGeneration->Use Runtime library 設置。

轉載自:http://zcun.i.sohu.com/blog/view/158081764.htm

---------------------------------------------------------------------------------------------------------------------------------

在生成裏面有一個類似名爲“批構建”(不同漢化翻譯不同)的選項,點擊後會出來。
或者在調試工具欄,有一個本來是“Debug”的下拉菜單,選擇爲Release即可。


---------------------------------------------------------------------------------------------------------------------------------

如何調試命令行程序:

方法一:在windows下vs中如下設置:
項目屬性->配置屬性->調試->命令參數 裏輸入你的參數
方法二: 把main()函數改個名,在另一個main()函數裏輸入參數調試.

---------------------------------------------------------------------------------------------------------------------------------

"無法找到“XXX.exe”的調試信息,或者調試信息不匹配……

解決方案:
1. 關閉掉Visual Studio 實例。
2. 找到解決方案下的.suo文件並刪除之。
3. 重新啓動Visual Studio,或者直接雙擊.sln文件打開
4. 成功調試程序!

轉載自:http://hi.baidu.com/tuying1011/item/1963ed0e80ba1fc02e4c6b98

------------------------------------------------------------------------------------------------------------------

error PRJ0003 : 生成“cmd.exe”時出錯

MSDN上提示錯誤的可能原因爲:
系統資源不足。關閉一些應用程序以解決此問題。
沒有足夠的安全特權。驗證是否有足夠的安全特權。
VC++ 目錄中指定的可執行路徑不包括您正嘗試運行的工具的路徑。
對於生成文件項目,缺少要在“生成命令行”或“重新生成命令行”上運行的命令。

查了查資料,看到解釋是:VS2008的環境變量設置不對(但是怎麼會不對的呢?之前不是挺好的嗎)
 應該如下解決:“工具--選項--項目和解決方案--VC++ 目錄”
增加如下幾行:
$(SystemRoot)/System32
$(SystemRoot)
$(SystemRoot)/System32/wbem
如果沒有找到“項目和解決方案”,則勾選“工具”-“選項”裏的“顯示所有設置”(不過我沒有看到這個“顯示所有設置”的選項,當然“項目和解決方案”是直接就有的)。

轉載自:http://blog.csdn.net/duqi_2009/article/details/6291685

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章