gpt4 book ai didi

visual-studio-2010 - Visual Studio 2010 中的构建问题

转载 作者:行者123 更新时间:2023-12-04 23:08:44 27 4
gpt4 key购买 nike

我在大学使用CS106库。用Visual Studio 2010更改Visual Studio 2008后,我在构建新项目或旧项目时遇到问题。我认为新的Visual Studio与CS106库不兼容。谁能告诉如何解决这个问题问题?

这是输出:

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)" (?_Xran@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(simpio.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@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)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z)
1>CS106CPPLib.lib(genlib.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(init.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(pcgraphics.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(strutils.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(simpio.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ) referenced in function "protected: bool __thiscall std::basic_string,class std::allocator >::_Grow(unsigned int,bool)" (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z)
1>CS106CPPLib.lib(genlib.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(init.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(pcgraphics.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
1>CS106CPPLib.lib(simpio.obj) : error LNK2019: unresolved external symbol "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register@facet@locale@std@@CAXPAV123@@Z) referenced in function "public: void __thiscall std::locale::facet::_Register(void)" (?_Register@facet@locale@std@@QAEXXZ)
1>CS106CPPLib.lib(strutils.obj) : error LNK2001: unresolved external symbol "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register@facet@locale@std@@CAXPAV123@@Z)
1>CS106CPPLib.lib(simpio.obj) : error LNK2001: unresolved external symbol "long const std::_BADOFF" (?_BADOFF@std@@3JB)
1>CS106CPPLib.lib(strutils.obj) : error LNK2001: unresolved external symbol "long const std::_BADOFF" (?_BADOFF@std@@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 ==========

最佳答案

这是解决方案:
http://melbsdailydigest.blogspot.com/

1.) 从斯坦福 CS106B 网站下载最新项目之一:

CS106B Assignment 1

2.) 解压项目并找到它的子目录\CS106。这是包含 CS106 程序的所有库 (CS106CPPLib.lib) 和头文件的文件夹。

3.) 将此文件夹作为子目录复制到您的分配文件夹之一(例如 C:\Assignment1\CS106。

4.)启动Visual Studio2008,然后单击文件 ->新建 ->项目......选择选择创建新的控制台程序时。

5.) 然后,您将看到一个新项目,其中包含多个文件,包括 stdafx.h、stdafx.cpp 以及之前提示时为项目命名的类似文件。从项目中删除/移除所有这些文件。

6.) 右键单击​​源文件夹并选择添加->现有项目...选择第一个分配文件(Assign1warmup.cpp)。

7.) 如果此时编译,您会发现它仍在寻找 stdafx.h 预编译头文件。让我们解决这个问题。转到 Project->Assignment1 Properties...(或任何可能命名的项目)。转到 Configuration Properties->C/C++->Pre-Compiled Headers 的“树”菜单中的选项。在 Create/Use Precompiled headers 选项下,选择 Not Using Precompiled headers 的下拉选项。

8.) 当你在这个部分时,现在花点时间也为这个项目选择头文件的位置。在 Configuration Properties->C/C++->General 部分下,选择 Additional Include Directories 选项并使用 ... 浏览并选择您之前复制到项目文件夹的 CS106 文件夹。

9.) 您应该在此处更改的最后一件事是在 Configuration Properties->C/C++->Code Generation 部分。将默认值(我认为是用于多线程调试 .DLL)更改为多线程调试(或者如果您正在进行发布版本,则更改为多线程)。

10.) 最后,我们需要让链接器知道在哪里可以找到 CS106 库文件。为此,您需要进行 2 项额外设置。一个是在配置属性->链接器->常规部分,您可以在适当标题的部分中选择附加库文件的位置 - “附加库目录”。您还需要通过 Configuration Properties->Linker->Input 下的“Additional Dependencies”部分将您的库添加到项目中。只需输入 CS106CPPLIB.lib。

注意:我发现根据您当前在解决方案资源管理器窗口中的选择,您获得的菜单和保存的设置似乎存在一些差异。我最初在选择实际源文件时进行了所有更改,但当时没有链接器菜单。我必须向上移动到源文件文件夹级别才能获得其他菜单,我可以在其中设置链接器选项。还需要注意的是,如果您在较低级别(即 Cpp 文件)进行设置,它们似乎会取代在其上方级别中设置的任何内容。

此时,项目应该通过选择 Build->Rebuild Solution 命令正确构建。
编程快乐!

关于visual-studio-2010 - Visual Studio 2010 中的构建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5310590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com