2014-04-04 4 views
0

Mono를 사용하여 Linux에서 실행되는 .NET 응용 프로그램이 있습니다. 사용자가 Mono를 설치하지 않아도되므로 mkbundle을 사용하고 싶습니다. 그때`./MyApp '로 빌드 시스템에서 생성 된 응용 프로그램을 실행할 수 있습니다x86에서 Mono mkbundle을 사용하여 빌드가 x64에서 실행되지 않습니다.

mkbundle MyApp.exe *.dll -o MyApp

: 나는의 x64 시스템에서 실행 할 수있는 결과 바이너리의 기대와 더불어, 86 시스템에서 mkbundle를 실행하고 내가 64 컴퓨터에 복사 (그리고 실행 가능하도록) 단지 출력, 그것은 실행되지 않습니다 때

그러나 :

bash: ./MyApp: No such file or directory

을 나는을 시도하는 경우 나는수 :

not a dynamic executable

은 바이너리 x64 시스템에 86 실행을 위해 만들어진하지 않나요?

답변

0

저는 리눅스가 처음인데, x64 리눅스 배포판에는 32 비트 바이너리를 실행할 수있는 기능이 포함되어 있지 않기 때문에 x86/x64는 Windows처럼 간단하지 않습니다. 예상대로

의 x64 시스템에서 32 비트 라이브러리를 설치 한 후, 86 코드가 실행됩니다 (예를 들어, 내가했습니다 분포의 수를 대상으로 필요로하는이, 작동하지만 우분투 7.04, apt-get install ia32-libs.

에 대신 x86 및 x64 용 별도 빌드를 만드는 것으로 결정했습니다.

관련 문제