代码之家  ›  专栏  ›  技术社区  ›  Dana Robinson

在VisualStudio中构建许多小工具的好方法是什么?

  •  2
  • Dana Robinson  · 技术社区  · 16 年前

    main() 函数,该函数将使用库。

    在unixy系统上,您可以使用makefile轻松实现这一点,但对windows/Visual Studio世界最简单的转换是为每个工具创建一个单独的项目,尽管它可以工作,但要设置和同步需要大量的工作,而且在文件系统和项目/解决方案级别都很难导航。我曾考虑过使用不同的配置,其中除了一个.c文件之外,其他所有文件都被排除在构建之外,但这将使同时构建所有工具变得不可能。

    是否有一种从一个“东西”(项目、msbuild文件等)构建所有工具的好方法?

    我真的对使用cygwin的gcc/mingw或NAnt不感兴趣。我希望尽可能坚持使用标准Windows工具链。

    4 回复  |  直到 16 年前
        1
  •  1
  •   snicker    16 年前

    你不知道

        2
  •  1
  •   Dana Robinson    16 年前

    所以我已经研究了一段时间了,所有的解决方案都有很多需要改进的地方。

    • 使用MSBuild并处理其陡峭的学习曲线。

    • 使用与VisualStudio集成不好的构建工具,如GNU make。

    你甚至不能像.NET项目那样制作项目模板!好吧,我想,如果你想费力地阅读文档,你可以做一个向导。就我个人而言,我已经决定采用“许多小项目”解决方案,只处理它。事实证明,它可能没有我想象的那么可怕,尽管它仍然很糟糕。以下是我在Visual Studio 2008中所做的工作:

    1. (可选)我在VisualStudio项目文件中设置路径,以便所有内容都在项目目录中生成,然后我有一个生成后步骤,将需要的dll/exe/pdb文件复制到$(SolutionDir)$(OutDir)。这样,您就可以跳转到单个目录中测试所有工具和/或将它们打包成二进制发行版。VS2008看起来很疯狂,到处都是输出文件夹,Win32和x64输出的默认位置不同。花几分钟确保所有平台的一致性将在以后得到回报。

    2. 清理模板。清除任何用户设置文件和编译器输出。

    3. 根据需要多次复制和粘贴项目。每个工具一个项目。

    4. 将每个复制的项目文件夹和项目文件重命名为新的工具名称。在文本编辑器(如Notepad++)中打开项目文件。如果您有一个简单的单文件项目,则需要更改文件开头两处的项目名称和文件末尾的源代码文件名。你不需要触摸中间的配置材料。

    5. 您还需要更改项目的GUID。弹出打开guidgen.exe(在SDK bin目录中)并使用最后一个单选按钮设置。将新GUID复制并粘贴到顶部的每个项目文件中。如果您有依赖项,那么在靠近源代码的文件底部将有一个或多个guid。不要更改它们,因为它们是依赖项中的GUID,必须匹配!

    6. 进入VisualStudio,打开主解决方案并添加工具项目。

    7. 进入configuration manager,确保所有支持的平台都正确无误,然后测试您的构建。

        3
  •  0
  •   Clifford    16 年前

    如果你有一个makefile,你可以在VisualStudio中使用一个“makefile”项目(在命名错误的情况下,它只允许你指定自定义的构建/调试命令),并使用它来调用GNU make。

    您需要更改makefile以使用VC++命令行工具,而不是cc或gcc或它使用的任何工具,但这些工具通常由makefile顶部的宏指定。

    如果makefile使用其他特定于Unix的命令(如rm),则可能需要进行修改,或创建bath文件以将命令映射到Windows等效命令。另一种选择是从安装任何必要的工具 GNUWin32

    如果构建非常复杂或涉及到配置脚本,那么您将面临更困难的任务。您可以使用MSYS/MinGW从配置脚本生成makefile,然后如上所述对其进行修改,使其与VC++一起工作。

    然而,Makefile项目在VisualStudio中的集成将不会那么紧密。所有的构建管理都取决于您和makefile。

        4
  •  -1
  •   Mark    16 年前

    如果您真的在使用VisualStudio,我建议为每个工具创建一个项目,并将这些项目添加到单个解决方案中。在VisualStudio中,一次构建一个完整的解决方案很容易,而MSBuild也知道如何构建.sln文件。

    msbuild myslnfile.sln
    

    msbuild
    

    ... 将构建您的解决方案。