代码之家  ›  专栏  ›  技术社区  ›  Mike Caron

将Visual Studio 2005 SLN迁移到2008,使用lib环境变量中的VC98路径发出警告,如何修复?

  •  6
  • Mike Caron  · 技术社区  · 16 年前

    我正在将解决方案从Visual Studio 2005迁移到Visual Studio 2008。当我在2005年构建解决方案时,我没有任何问题。但是,在使用devenv.exe/upgrade然后在解决方案上使用msbuild之后,我会收到以下警告:

    csc:警告cs1668:在“lib环境变量”--“系统找不到指定的路径”中指定的搜索路径\vc98\lib“无效。” csc:警告cs1668:在“lib环境变量”--“系统找不到指定的路径”中指定的搜索路径“vc98\mfc\lib”无效。 csc:警告cs1668:在“lib环境变量”-“系统找不到指定的路径”中指定的搜索路径“c:\Program Files\Microsoft Visual Studio 9.0\vc\platformsdk\lib”无效。

    我已经检查过了 http://social.msdn.microsoft.com/Forums/en-US/Vsexpressinstall/thread/3f875480-fee2-4bc3-b829-95e220b22a01 它没有提供任何帮助,因为我的lib和include环境变量既没有在用户vars中设置,也没有在系统vars中设置。我看过Studio的“工具”>“选项”>“项目和解决方案”>“VC++目录,没有引用旧内容的内容:

    图书馆档案: $(vcinstalldir)库 $(vcinstalldir)atlmfc\lib $(vcinstalldir)atlmfc\lib\i386 $(windowssdkdir)库 $(frameworksdkdir)库 $(VSnStAldidir) $(vsinstalldir)库

    包含文件:

    $(vcinstalldir)包括 $(vcinstalldir)atlmfc \包括 $(windowssdkdir)包括 $(frameworksdkdir)包括

    我使用了诊断输出,以便在调用lib变量时能够准确地看到它包括什么:

    lib=c:\Program Files\Microsoft Visual Studio 9.0\vc\atlmfc\lib;c:\Program Files\Microsoft Visual Studio 9.0\vc\lib;c:\Program Files\Microsoft SDK\Windows\v6.0a\lib;\vc98\lib;\vc98\mfc\lib;c:\Program Files\Microsoft Visual Studio 9.0\vc\platformsdk\lib;c:\Program Files\Microsoft Visual Studio 9.0\vc\lib;c:\Program Files\Microsoft Visual Studio 9.0\vc\atlmfc\lib; libpath=c:\windows\microsoft.net\framework\v3.5;c:\windows\microsoft.net\framework\v2.0.50727;c:\program files\microsoft Visual Studio 9.0\vc\atlmfc\lib;c:\program files\microsoft Visual Studio 9.0\vc\lib

    所以,如果VC98不在我的env vars中,或者我的工作室设置和VC98甚至没有安装(也没有Redist),那么该路径来自哪里?什么过程设置了这样的lib env var?

    5 回复  |  直到 14 年前
        1
  •  2
  •   compie Artelius    16 年前

    发现于 MSDN :

    是的,这是一个已知的问题 对一些人来说。仔细观察 你的lib路径。在atlmfc,v之后, sdk->\vc98\lib。删除此条目 (和接下来的那个)。如果 lib是一个用户变量,那么 需要重新启动vs或注销 然后回来。如果是一个系统 变量,然后您必须重新启动。 然后你的错误就会消失。

        2
  •  1
  •   Nachum    14 年前

    这是解决方案

    http://msdn.microsoft.com/en-us/library/tcbs315h(v=vs.80).aspx

    它引用环境变量中的lib条目

        3
  •  0
  •   RedBlueThing    16 年前

    似乎您已经涵盖了这里的大部分内容,所以我唯一能想到的就是继承的属性表。

    它们是在vcproj xml中指定的(或者您可以在IDE中检查属性管理器):

    <VisualStudioProject>
        <Configurations>
            <Configuration InheritedPropertySheets="stuff.vsprops">...
    

    如果您确实有一些继承的属性表,请查看该文件并查看是否显式设置了任何VC98 lib路径?

        4
  •  0
  •   ChrisBD    16 年前

    我想知道这是否是由于在使用编译器开关/mt和/mtd from/ml和/mld时发生了变化,而该开关是针对与C运行库相关的vs2005发生的?

    请参阅此处,看看是否有帮助: http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx

        5
  •  0
  •   Eamon Nerbonne    15 年前

    我和Net2010中的C项目有一个非常相似的问题。它只会影响那些导入C++/CLI项目的项目。这些项目仍然使用V5.0工具集(C++、C++/CLI)和.NET 3.5(C++/CLI,C语言)来编译。你找到问题的根源了吗?

    我通过在受影响项目的属性中的忽略警告列表中添加警告1668来解决这个问题。这并不理想,但比我警告列表中的垃圾邮件要好。