This page has info about Bundles with mkbundle
, but when I tried to use it on Mac, I got this error message.
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]
And from this site, I could run export AS="as -arch i386"
to get another error.
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]
I see this is a problem of 32bit/64bit compilation issue, then how to remove this error message? I tried with export CC="cc -arch i386"
, but it doesn't work.
I had to take the following steps.
--static
option. Just run mkbuild BINARY
. With the option --deps, it seems to embed more dlls. You can use -z option to zip the embedded libraries. You may get more hints from this, and this. Mono's mkbundle is explained in this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With