在 Windows 上使用 mkbundle 创建 C# 可执行文件

2023-11-23

我正在尝试从控制台应用程序创建可执行文件。 我已经安装了 mono,cygwin (mingw-gcc, mingw-zlib1, mingw-zlib-devel, pkg-config) 并将以下几行添加到我的 .bashrc 文件中

export PKG_CONFIG_PATH=/cygdrive/c/progra~1/Mono-3.2.3/lib/pkgconfig
export PATH=$PATH:/cygdrive/c/progra~1/Mono-3.2.3/bin
export CC="i686-pc-mingw32-gcc -U _WIN32"

But everytime I try to use mkbundle I receive the following message enter image description here

有没有办法让 mkbundle 在 Windows 上正常工作?

(我使用的是windows 7 x86,mono 3.2.3,我在官方网站上找到的cygwin,xamarin studio 4.2和net framwork 4)


目前Windows下的mono版本仍然存在这个问题。发生这种情况是因为 Mono 团队将默认 GC 切换为 SGEN。因此,当您尝试使用 mkbundle 时,正如您在错误 mkbundle 实用程序中看到的那样,尝试查找mono-2库,但该库未包含在安装程序中,因此您失败了。要解决这个问题,您应该配置 mkbundle 来使用libmonosgen-2.0代替mono-2。让我们尝试这样做。

关键时刻是设置这个变量:

export PKG_CONFIG_PATH=/cygdrive/c/progra~1/Mono-3.2.3/lib/pkgconfig

如果你进入这个目录你会看到很多*.pc文件(包配置)。该文件负责在捆绑过程中配置链接库。由于某些原因,mono 团队硬编码了包配置文件和库mono-2 (see this第 492 行)。我们如何在不重建的情况下修复它mkbundle?解决方案是使用下一个捆绑脚本:

# Mono paths
mono_version="3.2.3"
export MONO=/cygdrive/c/progra~2/Mono-$mono_version
machineconfig=$PROGRAMFILES\\Mono-$mono_version\\etc\\mono\\4.5\\machine.config
export PATH=$PATH:$MONO/bin
export PKG_CONFIG_PATH=$MONO/lib/pkgconfig
# Compiller
export CC="i686-pc-mingw32-gcc -U _WIN32"
# Output file name
output_name=Prog.exe
# Produce stub only, do not compile
mkbundle --deps --machine-config "$machineconfig" -c Program.exe
# Produce helper object file. You may see errors at this step but it's a side effect of this method.
mkbundle --deps --machine-config "$machineconfig" -oo temp.o Program.exe
# Compile. Pay attention where I use monosgen-2 
i686-pc-mingw32-gcc -U _WIN32 -g -o "$output_name" -Wall temp.c `pkg-config --cflags --libs monosgen-2` temp.o
# Copy libmonosgen-2.dll
cp $MONO/bin/libmonosgen-2.0.dll .
# Run
./$output_name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 上使用 mkbundle 创建 C# 可执行文件 的相关文章

  • 不允许从函数返回函数。我怎么能?

    8 3 5 8 Functions dcl fct says 函数的返回类型不得为 类型数组或function 尽管它们可能具有指针类型的返回类型或对此类事物的引用 为什么规则这么明确 是否有某种语法甚至允许返回函数而不是函数指针 我是否误
  • 了解子表单何时关闭

    我有一个带有按钮的 Form1 当您单击按钮时 将执行以下代码块 Form2 frm new Form2 frm Name Form musteriNumarasi ToString frm Text Kullan c musteriNum
  • SIGKILL 和 SIGSTOP 信号无法被捕获、阻止或忽略,为什么?

    我想知道为什么这两个信号在一个进程中不能被捕获 阻止或忽略 可以使用 signal 更改其余信号的操作 这两个信号和其余信号有什么区别 如果您谈论它们被阻止的原因 那么原因已经提到了 Adam B https stackoverflow c
  • IssuerSigningKeyResolver 调用异步方法

    我们使用 IssuerSigningKeyResolver 它是 Microsoft IdentityModel Tokens 的一部分 用于令牌验证并接受非异步委托 我们调用一个异步方法 这将导致阻塞调用 因此想知道使用它的正确方法是什么
  • Windows 控制台中的 C++ 按键输入

    我目前正在开发各种consoleWindows 中的游戏无法通过常规输入真正运行cin 我怎样才能 以简单的方式仅使用 MSVC 中提供的标准 Windows 库 让程序等待 特定 按键并返回按键 ID 它必须适用于包括箭头键在内的所有按键
  • 字符串中unicode字符的正则表达式

    我正在使用 C 进行一些 OCR 工作 并提取了我需要使用的文本 现在我需要使用正则表达式解析一行 string checkNum string routingNum string accountNum Regex regEx new Re
  • 如何获得字符串的所有字谜

    我试图找到一个字符串的所有可能的字谜并仅使用递归将它们存储在数组中 我被困住了 这就是我所拥有的一切 int main const int MAX 10 string a ABCD string arr 10 permute arr a 0
  • 无效的跨线程访问问题

    我有两个 ViewModel 类 PersonViewModel 和 PersonSearchListViewModel PersonViewModel 实现的字段之一是通过 WCF 下载的个人资料图像 本地缓存在独立存储中 PersonS
  • 树结构的序列化/反序列化

    我试图找出保存 序列化 并稍后打开 反序列化 树结构的最佳方法 我的结构由具有不同属性的各种对象类型组成 但每个对象类型都继承自基本抽象 Node 类 每个节点都有唯一的 ID GUID 并且有一个 AddSuperNode Node nd
  • 是否可以在三元表达式上只放置一个选项?

    我只是好奇这是否可能 或者是否有办法使它成为 C 的有效语法 expression value do nothing here or put some empty block like SomeClass SomeMethod Edit 为
  • 如何存储将被多个不同类访问的字符串常量? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 关于堆栈溢出有太多不同的答案 声明一个命名空间 并在 hpp 文件中将所有字符串标记为 extern const 并在 cpp 文件中放置它们的
  • STL(标准模板库)中使用的设计模式

    我正在学习STL和设计模式 我想知道是否有任何文档或链接可以解释如何在 STL 中实现设计模式 我做了谷歌但无法获得太多数据 我希望你的意思是 哪些设计模式可以在STL中识别 STL 堆栈是一个容器适配器 适配器是一种设计模式 迭代器也是一
  • C memcpy 二维数组

    我正在尝试使用将一个二维数组复制到另一个memcpy 我的代码 include
  • 如何使用 Xamarin 应用程序开发自动注销

    我必须在 App xaml cs 上添加功能才能使其正常工作 我在 OnStart 上添加了功能 但现在它会间歇性地一次又一次地将我从应用程序中注销 根据下面的代码 我需要做什么才能让它停止这样做 或者我的代码有问题 这是我最新的代码 na
  • 将 KeyUp 作为参数传递 WPF 命令绑定文本框

    我有一个文本框 KeyUp 事件触发器连接到 WPF 中的命令 我需要将按下的实际键作为命令参数传递 该命令执行得很好 但处理它的代码需要知道按下的实际键 记住这可能是一个回车键或不仅仅是一个字母的任何键 所以我无法从 TextBox te
  • 类型“MyApp”已包含“MystatusBar”的定义

    我的应用程序 XAML
  • 模板是如何实例化的?

    这是一个练习 来自C 入门第五版 练习 16 27 对于每个带标签的语句 解释什么 如果有 实例化发生 如果实例化了模板 请解释原因 如果 不 请解释为什么不 第677页 template
  • 使用 CryptUnprotectData 解密 WEP wlan 配置文件密钥

    我正在尝试使用解密 WEP 配置文件的密钥加密解除数据保护 http msdn microsoft com en us library windows desktop aa380882 28v vs 85 29 aspx 我获取配置文件密钥
  • 如何将 MouseDown 事件放入样式中?

    这有效 XAML
  • 如何在 MVC 5 中设置自定义 ClaimsPrincipal?

    我创建了一个自定义主体类 public class FacebookPrincipal ClaimsPrincipal public JObject Data get set 我想用它 当用户登录时 我尝试设置 var fbP new Fa

随机推荐

  • 如何在基于 NSDocument 的 Cocoa 应用程序中使用 NSViewController

    我对 iOS 有丰富的经验 但 Cocoa 让我有点困惑 我阅读了几个关于 Cocoa 的 Apple 文档 但仍然有一些细节我无法在任何地方找到 似乎文档是在基于 NSDocument 的 Xcode 模板更新为使用 NSViewCont
  • Java、Spring、Apache Tiles 错误:无法解析名为“dispatcher”的 servlet 中名为“index”的视图

    我是 Tiles 和 Spring MVC 的新手 我查看了几个类似的问题 但没有找到 我的问题 的解决方案 控制器 Controller public class IndexController RequestMapping index
  • 如何在 MiniZinc 中安装 Google 的 CP 求解器 OR-Tools?

    我目前正在研究 MiniZinc 并且我一直在使用 MiniZinc 中集成的两个求解器来运行我的模型 Gecode 和 Chuffed 我一直在 IDE 中运行它 但我知道它也可以在 bash 中运行 使用minizinc命令 但我想测试
  • vb.net 对象初始值设定项列表(T 的)

    我一直在看一些 C 代码 List
  • 为什么文本环绕浮动元素而不是像另一个 div 一样位于下方?

    我试图更深入地了解 CSS 我注意到当div漂浮在其下方的其他元素 对于环绕它的文本来说 情况并非如此 怎么会 这是设计使然 因为这就是浮动的工作原理 如果您参考文档 float CSS 属性将元素放置在其容器的左侧或右侧 允许文本和环绕它
  • 使用 Graph API v.2.0 获取 Facebook 好友 [重复]

    这个问题在这里已经有答案了 前段时间 我曾经带朋友这样使用Graph API 使用Graph API Explorer me friends 一切都很完美 但现在 在 2 0 版本中 我发现这种方式对于那些没有使用 通过 Facebook
  • 查找无向图中的所有循环

    如果我有一个无向图 如何获得所有循环的列表 例如 从下图中 我想要循环 a b d e c a b c b d e 这在多项式时间内是不可能的 如果可能的话 我们可以用它来找到所有循环 从而找到最大长度的循环 这意味着我们可以在多项式时间内
  • 如何实现Openid connect和Spring Security

    我是身份验证和授权的初学者 但我必须在工作中连接到 openid 连接提供商 我对如何使用 Spring Security 有所了解 首先 我通过遵循良好的方向获得了 UserInfo 对象 https oauthssodemo appsp
  • Rails:ParameterFilter::compiled_filter 尝试复制符号

    我正在使用 Rails 异常通知程序 gem 运行 Rails3 当发生异常并且应该发送电子邮件时 我从 ParameterFilter 类收到异常 我在 Rails 源代码中发现了问题 但不确定继续的最佳方法 问题出现在 ActionDi
  • 为什么 pandas.DataFrame.apply 打印出垃圾?

    考虑这个简单的数据框 a b 0 1 2 1 2 3 我执行一个 apply像这样 In 4 df apply lambda x x values Out 4 a 140279910807944 140279910807920 b 1402
  • .htaccess RewriteRule 保留 GET URL 参数

    我在保持 URL 参数正常工作时遇到问题 htaccess网址重写 My htaccess重写如下 RewriteEngine on RewriteRule a z 2 2 a zA Z0 9 index php lang 1 page 2
  • 尝试运行 Node.js 应用程序时如何修复“语法错误:无效或意外的令牌”

    我已经安装了Node js来自官方网站 下列的这些微软文档我尝试通过以下步骤创建我的第一个 Node js 应用程序 打开 PowerShell 并创建一个新目录 mkdir NodeApp 然后进入目录 cd NodeApp 在 VS C
  • 块的时间?

    有没有办法报告计算每个块需要多少时间 我正在努力从一些大型脚本创建一个文档 很高兴知道时间花在哪里 我确实使用了缓存功能 所以当然 一旦对象被缓存 处理文档就不会太慢 但我想隔离慢速块 看看如何阻止它们被重新计算 除非绝对需要 一种想法是
  • Android PCM 字节

    我正在使用 AudioRecord 类来分析麦克风中的原始 pcm 字节 所以这工作得很好 现在我需要将 pcm 字节转换为分贝 我有一个公式 可以将 Pa 中的声压转换为 db 分贝 20 log10 Pa 参考 Pa 所以问题是我从缓冲
  • 将 java 代码翻译成 kotlin 的最佳方法

    URL url new URL urlSpec HttpURLConnection connection HttpURLConnection url openConnection InputStream in connection getI
  • Java - 运行一个线程两次[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 来自另一个帖子 如果一个线程需要运行多次 那么应该创建一个 Thread 的新实例并对其调用 start 这是怎么做到的 我会使用另一层抽象 使用ExecutorService 这是
  • C++ 中 C 库的范围 -

    C 编程语言 特别版 第 431 页指出 For every header lt X h gt defining part of the C standard library in the global namespace and also
  • 计算字符串出现次数并绘制直方图

    是否有任何直接的方法可以从像下面这样的元胞数组创建直方图 连续条之间的间距应该完全相同 x 轴的标签应该是垂直方向下面的变量的相应名称 w464 w462 w461 w464 w461 w463 w466 w461 我也想知道更好的方法 F
  • 主题和行为主题有什么区别?

    我不清楚 a 之间的区别Subject and a BehaviorSubject 难道只是一个BehaviorSubject有getValue 功能 行为主体持有一个值 当它被订阅时 它会立即发出该值 主题不具有值 主题示例 使用 RxJ
  • 在 Windows 上使用 mkbundle 创建 C# 可执行文件

    我正在尝试从控制台应用程序创建可执行文件 我已经安装了 mono cygwin mingw gcc mingw zlib1 mingw zlib devel pkg config 并将以下几行添加到我的 bashrc 文件中 export