Mono c#console app,创建独立的mkbundle错误

时间:2012-10-13 12:56:18

标签: macos mono console mkbundle

尝试为可在Linux上运行的控制台创建独立应用程序,工作环境在Mac OS x 10.7上。

1。)打开Monodevelop并创建新的解决方案,即“C#控制台项目”。 2.)构建应用程序,exe将在bin / Release文件夹中创建 3.)在mac os x open terminal中,转到文件夹并输入: mkbundle -o HelloTest HelloWorld.exe --deps

这将会发生:

OS is: Darwin
Sources: 1 Auto-dependencies: True
   embedding: /Users/fredrickbacker/Documents/Mono/HelloWorld/HelloWorld/bin/Release/HelloWorld.exe
   embedding: /Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/4.0/mscorlib.dll
Compiling:
as -arch i386 -o temp.o temp.s 
cc -arch i386 -g -o HelloTest -Wall temp.c `pkg-config --cflags --libs mono-2`  temp.o
temp.c:2:39: error: mono/metadata/mono-config.h: No such file or directory
temp.c:3:36: error: mono/metadata/assembly.h: No such file or directory
temp.c:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘assembly_bundle_HelloWorld_exe’
temp.c:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘assembly_bundle_mscorlib_dll’
temp.c:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
temp.c:22: error: ‘NULL’ undeclared here (not in a function)
temp.c: In function ‘mono_mkbundle_init’:
temp.c:26: warning: implicit declaration of function ‘mono_register_bundled_assemblies’
temp.c:26: error: ‘bundled’ undeclared (first use in this function)
temp.c:26: error: (Each undeclared identifier is reported only once
temp.c:26: error: for each function it appears in.)
temp.c: In function ‘main’:
temp.c:118: warning: implicit declaration of function ‘mono_set_dirs’
[Fail]

有关我做错的任何建议吗?想要一个从osx开发的独立linux应用程序。拉我的头发几个小时。

1 个答案:

答案 0 :(得分:3)

您无法构建将在OSX上的Linux平台上使用的二进制文件。请记住 mkbundle 构建原生平台代码,而不是中间/ JIT可编译/ MSIL代码。

这并不能解决您在OSX上遇到的错误(我不知道出现了什么问题),但是如果您希望您的应用程序在Linux上运行,请在Linux机器上安装Mono并从那里运行mkbundle。