Search code examples
monomkbundle

Mkbundle doesn't work for simple program


What am I missing here...?

I'm running some sanity tests after installing mono on an Ubuntu server (14.04.3 LTS), and hitting some problems when trying to mkbundle a simple test app that I got from the mono site.

The test app looks like this:

using System;

public class HelloWorld
{
    static public void Main ()
    {
        Console.WriteLine ("Hello Mono World");
    }
}

It compiles into hello.exe fine when I use mcs.

However, when I subsequently run mkbundle -o hello hello.exe --deps, this step fails. The resulting message reads:

OS is: Linux
Sources: 1 Auto-dependencies: True
   embedding: /home/admin64/mono-test/hello.exe
   embedding: /usr/lib/mono/4.5/mscorlib.dll
Compiling:
as -o temp.o temp.s
sh: 1: as: not found
ERROR: [Fail]

This is my first time working with mkbundle so I wouldn't be surprised if I missed some critical step. Does anyone have any ideas to this puzzler?

I'm running with the mono-complete package installed.


Solution

  • sh: 1: as: not found

    mkbundle is trying to invoke the GNU assembler (as) on generated assembly code, after that it will invoke cc on generated C code and thus expect to find GCC installed and in your path. I assume you have not installed any other devel packages on that server, otherwise you would have those dependancies installed.

    I believe just installing the gcc package will give you everything that it needs.

    mkbundle env vars:

    AS     Assembler command. The default is "as".
    CC     C compiler command. The default is "cc" under Linux and "gcc" under
              Windows.