2011-03-15 134 views
4

我用CS106庫在university.After改變的Visual Studio 2008和Visual Studio 2010,我有建設新項目,還是老問題ones.I認爲,新的Visual Studio是不兼容CS106任何人都可以告訴如何解決這個問題?構建問題2010

這是輸出:

1>------ Build started: Project: Blank, Configuration: Debug Win32 ------ 1>Build started 3/15/2011 2:03:21 PM. 1>InitializeBuildStatus: 1> Touching "Debug\Blank.unsuccessfulbuild". 1>ClCompile: 1> All outputs are up-to-date. 1>CS106CPPLib.lib(strutils.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(simpio.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" ([email protected][email protected]@@SAXXZ) referenced in function "public: class std::basic_string,class std::allocator > & __thiscall std::basic_string,class std::allocator >::assign(class std::basic_string,class std::allocator > const &,unsigned int,unsigned int)" ([email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 1>CS106CPPLib.lib(genlib.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(init.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(pcgraphics.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(strutils.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(simpio.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" ([email protected][email protected]@@SAXXZ) referenced in function "protected: bool __thiscall std::basic_string,class std::allocator >::_Grow(unsigned int,bool)" ([email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 1>CS106CPPLib.lib(genlib.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(init.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(pcgraphics.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" ([email protected][email protected]@@SAXXZ) 1>CS106CPPLib.lib(simpio.obj) : error LNK2019: unresolved external symbol "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" ([email protected]@[email protected]@@[email protected]@Z) referenced in function "public: void __thiscall std::locale::facet::_Register(void)" ([email protected]@[email protected]@@QAEXXZ) 1>CS106CPPLib.lib(strutils.obj) : error LNK2001: unresolved external symbol "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" ([email protected]@[email protected]@@[email protected]@Z) 1>CS106CPPLib.lib(simpio.obj) : error LNK2001: unresolved external symbol "long const std::_BADOFF" ([email protected]@@3JB) 1>CS106CPPLib.lib(strutils.obj) : error LNK2001: unresolved external symbol "long const std::_BADOFF" ([email protected]@@3JB) 1>Debug\Blank.exe : fatal error LNK1120: 4 unresolved externals 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:00.97 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

+1

嘗試爲人類格式化錯誤:-)我將它格式化爲代碼,但CR/LF丟失。我也刪除了C++ builder標籤,因爲這個問題與C++ builder沒有任何關係 – 2011-03-15 14:09:30

+2

它只是連接嗎?你做了一個完整的重建嗎? – Max 2011-03-15 14:10:32

回答

8

這裏是解決方案: http://melbsdailydigest.blogspot.com/

1)下載從斯坦福CS106B網站的最新項目之一:

CS106B Assignment 1

2)解壓縮項目,並找到它的子目錄\ CS106。這是包含CS106程序的所有庫(CS106CPPLib.lib)和頭文件的文件夾。

3)此文件夾中複製一個子目錄,以您的作業文件夾中的一個(例如C:\分配1 \ CS106

4)開的Visual Studio2008,然後點擊文件 - >新建 - >項目......當給出選擇選擇來創建一個新的控制檯程序。

5)然後您就可以用多個文件,包括stdafx.h中,stdafx.cpp和任何更早時提示您命名您的項目類似名稱的文件的新項目呈現。從項目中刪除/刪除所有這些文件。

6)右鍵單擊源文件夾,然後選擇添加 - >現有項...選擇第一個任務文件(Assign1warmup.cpp)。

7)如果你編譯在這一點上,你就會明白,它仍然在尋找stdafx.h中預編譯的頭。我們來解決這個問題。轉到Project-> Assignment1 Properties ...(或者任何可能命名的項目)。轉至配置屬性 - > C/C++ - >預編譯頭文件的「樹」菜單中的選項。在「創建/使用預編譯頭」選項下,選擇「不使用預編譯頭」的下拉選項。

8)當您在本節的時候,走的時候我們也選擇這個項目的頭文件的位置。在Configuration Properties-> C/C++ - > General部分下,選擇Additional Include Directories選項並使用...瀏覽並選擇之前複製到項目文件夾中的CS106文件夾。

9)一個,你應該改變這裏最後一件事是在配置屬性 - > C/C++ - >代碼生成部分。將默認值(我認爲是用於多線程調試.DLL)更改爲多線程調試(如果您正在執行發佈版本,則只是多線程)。

10.)最後,我們需要讓鏈接器知道在哪裏可以找到CS106庫文件。要做到這一點,你需要做2個額外的設置。一個是在配置屬性 - >連接器 - >常規部分中,您可以在標題爲「足夠的庫目錄」的章節中選擇其他庫文件的位置。您還需要通過配置屬性 - >鏈接器 - >輸入下的「附加依賴項」部分將庫添加到項目中。只需輸入CS106CPPLIB.lib。

注意:我發現在解決方案資源管理器窗口中,您獲得的菜單和獲取的設置似乎有所不同,具體取決於您的選擇。當我選擇實際的源文件時,我原本完成了所有更改,但在此時沒有鏈接器菜單。我不得不移動到源文件文件夾級別,以獲得額外的菜單,我可以設置我的連接器選項。另外需要注意的是,如果你在較低級別(即Cpp文件)進行設置,它們似乎會取代上一級設置的任何設置。

在這一點上,項目應該通過選擇Build-> Rebuild Solution命令來正確構建。 快樂編程!

+0

您的鏈接不再工作?你可以更新嗎? – 2012-06-20 13:42:32

+0

更新了鏈接 – gkiko 2012-06-22 09:10:16

1

的源代碼將有助於解決這個問題。但是......你是否在文件的頂部添加了#include <string>以產生錯誤?