问题标签 [mkbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Mono mkbundle 工具无法创建二进制文件并抱怨输出文件不可用
根据这个线程关于运行无 .NET 的 C# 应用程序的建议,我使用单声道编译了我的应用程序。我使用最新的 Visual C# .NET Express Edition 构建了原始应用程序。它在 Windows 上的 .NET 上运行良好。然后我打开 Cygwin 并导航到我再次编译项目的源代码,在 mono 下使用以下命令:
这将生成 MyProject.exe,它可以在 Cygwin 中成功运行,并且可以从 Window 命令行成功运行。使用的命令是:
只是为了踢球,简单地说:
一切都按预期工作。然后我尝试使用 mkbundle 命令将单声道编译的可执行文件构建为静态链接的二进制文件,如下所示:
这是事情开始走下坡路的地方。它开始得很好,然后抱怨输出文件(大概是 MyProject.exe)因为忙而无法打开。这一切的完整输出在这里:
我声称我的 unix gcc 工具链已安装并且状况良好,因为我最近能够使用它在 eclipse 中成功编译一些 c++ 应用程序(尽管我认为我应该对任何数量的问题持开放态度......)。
有人遇到过这样的事情吗?我被难住了...
c# - c# cywgwin mono mkbundle windows 7 - 无法编译文件
我正在尝试按照以下帖子使用 cygwin 构建嵌入单声道的 ac# 应用程序。
我在这里遵循指南:如何使用 Mono 和 mkbundle 将简单的 .Net 控制台项目转换为可移植的 exe?
我收到的错误是:
“gcc:-mno-cygwin 标志已被删除;使用面向 mingw 的交叉编译器。”
我不确定如何解决这个问题 - 任何人都可以建议吗?
我正在使用:Windows 7 x64、Mono 2.4.3、cygwin 7.1 beta(用于 Windows 7 支持)。
谢谢,
坦率
mono - 单声道 mkbundle 窗口
我在 cygwin 上使用了 mono mkbundle 来编译一个点网应用程序,它工作正常。我使用了这里的说明c# cywgwin mono mkbundle windows 7 - cannot compile file
除非以下文件(从 mono/bin 复制)文件夹与应用程序位于同一文件夹中,否则完成的应用程序将不会运行:mono.dll、libglib-2.0-0.dll、libgthread-2.0-0.dll、zlib。 dll
这一切似乎都很好 - 但是如果我运行命令(来自 cygwin)
$ objdump -p mycompiledapp.exe | grep "DLL Name"
(其中“mycompiledapp.exe”是应用程序的名称)
文件 mono.dll、libglib-2.0-0.dll、libgthread-2.0-0.dll 已经嵌入到我的应用程序中。
当这些文件已经嵌入到我的应用程序中时,为什么它们需要与我的应用程序位于同一文件夹中才能运行?
编译时我做错了什么吗?
有没有办法:
a)不将这些程序集嵌入我的应用程序(以便它们可以与它一起分发)
b)编译我的应用程序,以便它知道这些程序集嵌入在应用程序中,并使用它们?(并且不必与应用程序一起分发这些文件)
当它们已经嵌入其中时,将这些文件与我的应用程序一起分发似乎很痛苦!(特别是考虑到这些程序集的大小 - 一个 50k dot net 应用程序作为编译后的单应用程序变成大约 5megs,并且这需要与额外的 4megs 程序集一起分发才能运行......e)
谢谢你的任何信息,
铁匠铺
c# - 带有单声道 2.0 的 mkbundle
我花了相当多的时间试图用单声道制作一个捆绑包。我可以运行程序就好了
但是当我说
它输出
当我尝试运行它时,它说
我注意到它正在从 1.0 文件夹中复制 mscorlib.dll。我尝试将 2.0 版放在此文件夹中,它解决了通用列表类型加载错误,但现在我遇到了秒表和信号量类型加载错误。
如何制作包含我需要的所有这些类型的捆绑包?
f# - Mono AOT / mkbundle 是如何使用和优化的?(用于减少 VM 启动延迟)
我想看看是否可以通过使用 Mono 的 AOT(提前编译器)来减少 VM 延迟。如何运行 .so 文件?(抱歉,这个问题太简单了;我在 Mono 的文档中找不到简单的答案)。
我想出了如何使用 mkbundle(在本例中为 mkbundle2),但是生成的文件是否正在优化?Mono AOT 文档提到了“-O=all,-shared”标志,但我没有看到 mkbundle 的这些标志。
虽然这可能是一个非常不同的答案,但如果有保持 VM 开放的好方法(使用比 fifo 特殊文件更自然/平台中立的东西),那可能是最好的。
提前致谢!
.net - 用 mkbundle2 打包后,目标机器抱怨 libmono.so。为什么?
我认为 mkbundle2 的目的是允许没有安装单声道的机器运行单声道应用程序。但它似乎没有打包 libmono.so。我不确定它是否应该这样做,但目标机器抱怨我在运行捆绑包时找不到 libmono.so.0。为什么要寻找那个文件?如果需要它,为什么它会在捆绑包之外的任何地方寻找呢?如果它应该在捆绑包中,为什么 mkbundle2 不把它放在那里?我正在使用“--deps”选项来包含所有依赖项。我错过了什么吗?
添加 --static 选项后,我在目标机器上得到了这个结果:
未处理的异常:System.TypeInitializationException:System.Windows.Forms.XplatUI 的类型初始化程序引发了异常---> System.DllNotFoundException:libc at (wrapper managed-to-native) System.Windows.Forms.XplatUI:uname (intptr) 在 System.Windows.Forms.XplatUI..cctor () [0x00000] 在:0
使用 export MONO_LOG_LEVEL=debug 显示更多信息:
Mono-INFO:DllImport 试图加载:'libc'。Mono-INFO:DllImport 加载位置:'libc.so'。Mono-INFO:DllImport 错误加载库:'/usr/lib64/libc.so:无效的 ELF 标头'。Mono-INFO:DllImport 加载库:'./libc.so'。Mono-INFO:DllImport 错误加载库“./libc.so:无法打开共享对象文件:没有这样的文件或目录”。Mono-INFO:DllImport 加载:'libc'。Mono-INFO:DllImport 错误加载库“libc:无法打开共享对象文件:没有这样的文件或目录”。
这是否意味着我正在尝试在硬件不兼容的机器上运行?两台机器都是 SUSE Linux Enterprise Server 11 (x86_64)。
c# - 使用 mkbundle2 后,目标机器找不到 libmono.0.dylib
我有一个非常简单的 .NET 命令行应用程序,我想移植到 OS X。
我可以使用“mono app.exe”运行它
但是,目标机器不会安装单声道。所以,我想在应用程序中捆绑单声道。
为了做到这一点,我使用了 mkbundle2:
这工作没有错误,输出:
我可以在构建机器上执行它。但是,当我在没有单声道的机器上执行时,它不会运行。
输出:
我错过了什么?如何包含实际的单声道运行时?
编辑:我也尝试添加 --static 标志。但是,这为我的应用程序提供了另一个许可证,但我不确定我是否想要。然后我不再抱怨 libmono,而是抱怨 libgthread-2.0.0.dylib
mono - 尝试运行单声道捆绑程序,但缺少 libgdiplus 异常
我目前正在尝试让我的 C# 程序在 Linux 上运行。在我的 Linux 机器上使用 mono,程序运行良好。所以我使用了 mkbundle,它全部编译正确。但是当我尝试在任何其他 Linux 机器上运行捆绑的程序时,我得到了这个错误:
这是我使用的 mkbundle 命令:
我也尝试使用 mkbundle2 没有运气。
我想也许有一种方法可以专门包含带有 mkbundle 的库(比如告诉在哪里可以找到 libgdiplus)。当我使用 mkbundle 时它应该被链接,但我想这不是因为当我在任何其他 Linux 机器上运行我的程序(不是运行单声道)时,我得到了这个错误。
两台机器都运行 Ubuntu 10.10 AMD64。
mono - 无法使用 mkbundle 编译简单的 C# 应用程序
我写了一些控制台“Hello world”之类的应用程序。并遵循c# cywgwin mono mkbundle windows 7 - 无法编译文件答案。但我有:
它在 Windows XP 中。