我可以使用mtouch来构建库吗?

问题描述 投票:0回答:1

我想使用mtouch从我所有的程序包依赖关系中构建一个dll。我尝试了其他选择,但失败了。将root程序集作为我的dll加上所有软件包给我MT0052: No command specified

xamarin.ios
1个回答
0
投票

我认为mtouch无法做到这一点。从[Using mtouch to Bundle Xamarin.iOS Apps的文档中,您可以看到:

.NET可执行文件转换为应用程序的过程主要由mtouch命令驱动,该工具集成了将应用程序转换为捆绑软件所需的许多步骤。此工具还用于在模拟器中启动您的应用程序并将该软件部署到实际的iPhone或iPod Touch设备。

它只是将现有的.NET可执行文件传输到应用程序中,不能帮助您将库绑定到应用程序中。

您还可以看到mtouch的COMPILATION MODE文档,有四种模式:

  • ---- abi = ABI以逗号分隔的目标ABI列表。当前支持:armv6,armv6 + llvm,armv7,armv7 + llvm,armv7 + llvm + thumb2,armv7s,armv7s + llvm,armv7s + llvm + thumb2。如果目标多个ABI,则会自动创建胖二进制文件。要使用LLVM优化编译器代码生成后端,而不是Mono的默认代码生成后端,应以llvm ABI之一为目标。对于本机代码,构建时间会花费更长的时间,但是生成的代码会更短且性能更好。

您还可以通过将llvm + thumb2目标之一作为目标来指示LLVM代码生成器生成ARM Thumb指令。 Thumb指令可生成更紧凑的可执行文件。

  • -cxx启用C ++支持。如果要链接到一些使用C ++运行时的第三方库,则这是必需的。使用此标志,mtouch使用C ++编译器而不是C编译器来驱动编译过程。
  • -sim = DIRECTORY这会将在命令行上传递的程序和程序集编译到指定目录中,以与iOS模拟器一起使用。这将生成一个完全由C#或ECMA CIL代码驱动的独立程序。
  • -dev = DIRECTORY这会将在命令行上传递的程序和程序集编译到指定目录中,以在iPod Touch,iPhone或iPad设备上使用。目标目录可用作.app目录的内容。这将生成一个完全由C#或ECMA CIL代码驱动的独立程序。

mtouch不支持绑定库,它仅编译已绑定库的现有可执行文件。

顺便说一句,如果要绑定第三方库,官方文档会建议您使用Binding iOS Libraries

© www.soinside.com 2019 - 2024. All rights reserved.