这一页有关于捆绑包的信息mkbundle
,但是当我尝试在 Mac 上使用它时,收到此错误消息。
delegate> mkbundle delegate.exe -o delegate
OS is: Darwin
Sources: 1 Auto-dependencies: False
embedding: /Users/smcho/Desktop/csharp/delegate/delegate.exe
Compiling:
as -o temp.o temp.s
temp.s:2:unknown section type: symbol_stubs
temp.s:2:Rest of line ignored. 1st junk character valued 112 (p).
[Fail]
并从这个网站,我可以跑export AS="as -arch i386"
得到另一个错误。
Compiling:
as -arch i386 -o temp.o temp.s
cc -g -o a.out -Wall temp.c `pkg-config --cflags --libs mono-2` temp.o
ld: warning: ignoring file /Library/Frameworks/Mono.framework/Versions/2.10.2/lib/libmono-2.0.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: ignoring file temp.o, file was built for i386 which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
"_mono_register_bundled_assemblies", referenced from:
_mono_mkbundle_init in cczw6Dmo.o
"_mono_set_dirs", referenced from:
_main in cczw6Dmo.o
"_mono_main", referenced from:
_main in cczw6Dmo.o
"_assembly_data_ser_exe", referenced from:
_assembly_bundle_ser_exe in cczw6Dmo.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
[Fail]
我看到这是32位/64位编译问题,那么如何删除这个错误消息?我尝试过export CC="cc -arch i386"
,但它不起作用。
我必须采取以下步骤。
- 导出 AS="as -arch i386"
- 导出 CC="cc -arch i386"
- 运行时不带
--static
选项。赶紧跑mkbuild BINARY
。使用选项--deps,似乎嵌入了更多的dll。您可以使用 -z 选项来压缩嵌入式库。
您可能会得到更多提示this, and this。 Mono 的 mkbundle 解释如下this.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)