Проблема при запуске моно 2.10.2 mkbundle на Mac OS X снежный барс - PullRequest
4 голосов
/ 22 июня 2011

Эта страница содержит информацию о пакетах с 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", но это не работает.

1 Ответ

9 голосов
/ 22 июня 2011

Мне пришлось предпринять следующие шаги.

  1. export AS = "as -arch i386"
  2. export CC = "cc -arch i386"
  3. Запуск без опции --static. Просто запустите mkbuild BINARY. С опцией --deps, кажется, встраивает больше dll. Вы можете использовать опцию -z для архивирования встроенных библиотек.

Вы можете получить больше подсказок от этого и этого . Mkbundle Моно объясняется в это .

...