【问题标题】:Can I compile DLLs without Visual Studio?我可以在没有 Visual Studio 的情况下编译 DLL 吗?
【发布时间】:2015-07-17 12:13:26
【问题描述】:

我的意图是采用a C++ library,用SWIG (alt. link) 将其包装为C#,并将C++ 和C# 组件编译为Unity 5 的DLL。(C# DLL 为Unity 提供了一个与C++ DLL。)

据我所知,编译 C++ 和 C# DLL 始终需要 Visual Studio(或 VS 附带的 msbuild 等工具)。但是,我目前正在努力安装 VS,这让我对这个假设提出了质疑。

还有其他选项可以在 Windows 上编译 Unity-ready DLL 吗?

(即使我安装了 VS,我仍然很想知道。)

【问题讨论】:

  • 您知道您可以免费(“免费”)获得 Visual Studio (Express) 以及所需的所有工具,甚至可以将其用于commercial purposes
  • 完整的 Visual Studio 社区 也是免费的

标签: c# c++ visual-studio dll unity3d


【解决方案1】:

您可以下载MSBuild 的独立版本并使用它来编译您的代码,您不需要 VS。

有一个演练here

msbuild buildapp.csproj /t:HelloWorld

【讨论】:

  • 您也可以让它与 Visual C++ 一起工作,但工作量很大,而且您很容易在 MSVCRT 方面陷入困境。磁盘空间的价值远低于您的时间和理智。
  • @YuvalItzchakov 不太清楚 OP 是否也需要构建 C++。如果你看这篇文章,它说先决条件之一是必须安装 VS2013。 MSBuild 仅附带 C# 和 VB。如果 OP 只需要构建 C#,这将起作用,但如果他还需要构建 C++,他将在尝试安装 VS 时遇到同样的问题。
  • @cup 我读过这篇文章。 VS只是生成代码的先决条件,它与编译过程无关:您可以使用Visual Studio或文本编辑器来创建这些C++文件。
【解决方案2】:

是的,您可以在命令行中使用MinGW to compile C++ to a DLL

如果您更喜欢 GUI 界面,您可以尝试Code::Blocks。它捆绑了经过调整的 MinGW 版本,但由于它是基于 GUI 的 IDE,您不必直接与其交互 :)

但是,您仍然需要将 swig 包装的代码放入 C# DLL。我会调查 MonoDevelop 是否可以实现这一点。

编辑:刚刚看到 ReCoF 的回答 - 看来您可以将 MonoDevelop 用于 C# 方面,所以您很高兴 :)

【讨论】:

  • 在我的情况下,该库主要是针对 gcc 进行维护的,所以这也意味着没有新问题,因为我正在一个新平台上编译 :) 耶!
【解决方案3】:

使用像csc (C# Compler)这样的命令行工具,他们有一切可以完成这项工作,你不需要任何其他东西,看看Link

您只需要安装 .Net 框架即可获得编译器,无需 VS 或任何其他工具。 VS 提供的每个选项都有开关。

如果您需要汇编链接,请使用汇编链接器工具Link

请在 ILMerge 上查看以下 Link

【讨论】:

    【解决方案4】:

    您还可以使用 MonoDevelop 编译您的项目。您只需要选择发布模式而不是调试模式。

    【讨论】:

    • 我知道这个帖子标签是 Visual-Studio,但是如果您在获取 Visual 时遇到问题,这是获得您想要的结果的另一种方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多