Mkbundle doesn't work for simple program - mono

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.

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.

Related

libgcc_s_dw2-1.dll is missing when compiling with "-static-libgcc -static-libstdc++"

I'm compiling a program using the following commands on Linux Debian based:
i686-w64-mingw32-g++ -c my_program.cpp
i686-w64-mingw32-g++ -static-libgcc -static-libstdc++ my_program.o
But when I try to run the program inside my Windows 7 VirtualBox I get the following error:
libgcc_s_dw2-1.dll is missing
Why it doesn't static import the dll on compilation time?
Thank you

How to make cmake identify correct version in centos 6 terminal?

After a very long and lengthy process of trying to get Emscripten going. I'm stuck trying to build fastcomp.
cmake .. -DCMAKE_BUILD_TYPE=Release
-DLLVM_TARGETS_TO_BUILD="X86;JSBackend" -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DCLANG_INCLUDE_TESTS=OFF
It gives this error:
CMake Error at cmake/modules/CheckCompilerVersion.cmake:12 (message):
Host GCC version must be at least 4.8!
I've installed devtools 2 and actiavted the toolset.
gcc --version reads as using gcc 4.8.2, but it just won't go.
I've also tried:
export CC=/opt/rh/devtoolset-2/root/usr/bin/gcc
export CXX=/opt/rh/devtoolset-2/root/usr/bin/c++
export CPP=/opt/rh/devtoolset-2/root/usr/bin/cpp
What am I doing wrong?
I had this same problem until I recompiled a recent version of cmake with the newer version of gcc already "activated".
Then, with the CC, CXX and CPP environment variables also set to the appropriate paths, cmake then stopped giving that "Host GCC version must be at least 4.8!" error.

Getting error while compiling objective-c in ubuntu

I am trying to compile a simple hello world program written in objective c from ubuntu but I am getting an error as
gcc: error: unrecognized command line option ‘-fobjc-nonfragile-abi’
To compile I am using the command
gcc gnustep-config --objc-flags -lgnustep-base hello.m -o hello
Can you please help me out with this. I am not getting any solution in google too.
The best way to compile gnustep code is with makefiles. It avoids all this faff with GCC:
make a file called GNUmakefile
Make the content:
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME=hello
hello_OBJC_FILES=hello.m
include $(GNUSTEP_MAKEFILES)/tool.make
just type:
make
to compile, the output is in the obj/ dir
I would give this a read
http://www.gnustep.it/nicola/Tutorials/WritingMakefiles/
Now a problem I always have is it can't find the gnustep makefiles.
The long term fix is to add it to path, the quick fix is every session, type:
export GNUSTEP_MAKEFILES=/usr/share/GNUstep/Makefiles
/usr/share/GNUstep/Makefiles is my gnustep makefile dir, YOURS MAY BE DIFFERENT! but I assume that this is the dir if you installed gnustep like this:
apt-get install gnustep gnustep-devel
it may be worth making sure you have the gnustep-devel package!
Good luck!

Objective C program Compilation and Execution

I am a newbie to Objective C programs. I'm learning to code from tutorialspoint.com
As mentioned therein I downloaded GNUstep (Windows).
First, installed the MSYS/MinGW System package and then core package.
After that followed the steps mentioned there. I created a simple program with name hello.m and Stored that in C drive (Snapshot 1)
I don't know the meaning of this command below but entered it:
$ gcc gnustep-config --objc-flags -L /GNUstep/System/Library/Libraries hello.m -o hello -lgnustep-base -lobjc
The error it shows is - sh: gcc: command not found
Please help with the same, to compile and run my first Objective C program
gcc is the compiler, the other parameters are for compiling objective-c code.
Apparently you have misconfiguration in MSYS/MinGW setup.
Check out following post which has alternative and easier solution for running gcc under Windows.

Merging Mono Runtime 3.0.4 with MonoDevelop 3.x fails

I'm trying to merge the Mono Runtime (v 3.0.4) with a MonoMac application, but since the upgrade to 3.0.4 (from 2.10.11) this fails with the following error:
Merging Mono Runtime into app bundle
/Applications/MonoDevelop-old.app/Contents/MacOS/lib/monodevelop/AddIns/MonoDevelop.MonoMac/mmp
-nolink "-minos=10.6.6"
-o "/Users/ted/Documents/XCode/Mac/StageTimer/StageTimer/bin/Release"
-n "StageTimer"
-a "/Library/Frameworks/Mono.framework/Versions/3.0.4/lib/mono/4.0/System.dll"
-a "/Library/Frameworks/Mono.framework/Versions/3.0.4/lib/mono/4.0/System.Xml.dll"
-a "/Library/Frameworks/Mono.framework/Versions/3.0.4/lib/mono/4.0/System.Core.dll"
-a "/Library/Frameworks/Mono.framework/Versions/3.0.4/lib/mono/4.0/System.Xml.Linq.dll"
-a "/Library/Frameworks/Mono.framework/Versions/3.0.4/lib/mono/4.0/System.Drawing.dll"
-a "/Applications/MonoDevelop-old.app/Contents/MacOS/lib/monodevelop/AddIns/MonoDevelop.MonoMac/MonoMac.dll"
"/Users/ted/Documents/XCode/Mac/StageTimer/StageTimer/bin/Release/StageTimer.exe"
Process exited with code 1, command:
pkg-config --variable=prefix mono-2
Unhandled Exception: System.IO.DirectoryNotFoundException: Directory '/lib/mono/4.0' not found.
Even if I configure MonoDevelop to use Mono 2.10.11 instead of 3.0.4 it fails with the same error (and path: '/lib/mono/4.0'). Next I also tried modifying the symlink in /Library/Frameworks/Mono.framework/Versions/Current to point to 2.10.11 but still the same error & path.
Anyone with mono & pkg-config skills that knows how to configure this?
Similar issue happened to F# compiler when one tried to run it alongside Mono 3.0.4 (instead of 3.0.3). The issue boils down to a bugfix in Mono that prevents conflicting the homebrew pkg-config set up. The workaround that was adopted in F# sources was to hardcode the path to Mono's pkg-config.
You could probably get the same result as this by just overriding the environment variable PKG_CONFIG_PATH when launching MonoDevelop, this way:
PKG_CONFIG_PATH=/path/were/mono/pc/files/are/in/Mac:$PKG_CONFIG_PATH monodevelop
The exact path must be somewhere underneath /Library/Frameworks/Mono.framework/Versions/Current/ , just look out for files with .pc extension.