Missing libc after using mkbundle - linux

I have a C# application developed using mono 3.0.6. Everything works perfectly.
I need to deploy this application to production desktops where I'm not allowed to install mono. So, I decided to use mkbundle, using the command
mkbundle -o myprog --deps --static myprog.exe
On the destination desktop, when I try to execute myprog, it gives me
Unhandled Exception: System.DllNotFoundException: libc
Obviously, both origin and target machines uses the same OpenSuse, except for the fact that target has no mono installed.
What is supposed I'm missing?
TIA.

Related

CMake C:/IntelSWTools/ISSM_2016/tools/compiler/gcc-ia/5.2.1/bin/i586-intel-elfiamcu-gcc is not a full path to an existing compiler tool

I am having issues compiling this project on zephyr.js, the instructions on their GitHub are for Linux however they do have an environment setup for Windows as well which I have completed to the letter.
When I run the compilation using the makefile I get:
CMake C:/IntelSWTools/ISSM_2016/tools/compiler/gcc-ia/5.2.1/bin/i586-intel-elfiamcu-gcc is not a full path to an existing compiler tool.
I am using the msys terminal with MinGW and I have installed CMake separately and configured it... but why is it throwing this error? I have checked, and the file is actually there. If I type C:/IntelSWTools/ISSM_2016/tools/compiler/gcc-ia/5.2.1/bin/i586-intel-elfiamcu-gcc. into the terminal, it also executes the compiler successfully.
Any ideas?
(Before anyone tells me to try on Linux, for now, it is a requirement to use Windows for this project)

Deploy Qt program to Windows from Linux

I'm developing a Qt program on Linux which I would like to puplish on Windows too. Compiling and static linking for Windows works well with MXE (qtbase installed) how ever I'd like to link my program dynamically.
Dynamic linking works and the program runs under Wine but when I copy the EXE and the DLLs to Windows the program gives an error: 'This application failed to start because it could not find or load the Qt platform plugin "windows" in "".'
On Windows there's windeployqt that puts everything that the application needs to run neatly in one folder. Is there a way for getting this tool (or similar) running on Linux?
You're missing several files needed around the executable.
Get them under "Qt Dir \ Qt Version \ MinGW Version \ plugins \"
Required :
imageformats\
qgif.dll
qico.dll
qjpeg.dll
qwbmp.dll
platforms\
qwindows.dll (that's what the error is talking about)
(if in Debug mode, use these files with a "d" at the end, for example qwindowsd.dll)
I'm not sure about the imageformats, but I had to use them even in programs not using pictures. Try with "platforms\qwindows.dll" first, then add the imageformats if the programs asks to.
See https://doc.qt.io/qt-5/windows-deployment.html for the full info and more precise options. I'm just giving you the explanation.

Compiling a Linux program for ARM architecture - running on a host OS

I have a ARM Coretex-A8 development board from Freescale (i.MX53) running Linux Ubuntu. It boots up just fine and I can access the system with mouse/keyboard/terminal.
To get started I would like to make an application running on the board inside the host OS, just as you do when you run application on your PC.
My problem is to compile my test program, using toolchains like YAGARTO which is based on gcc i end up in trouble with the linking bacause I have not defined any startup script.
I find lot of information on building "bare metal" configurations (inluding compiling the kernel and make load and link scripts), but not anything usefull for making a application running on a host OS.
My development environment is running on Windows 7. I also have the option to run on Linux X86, but i doubt this whould help me making ARM applications.
For ARM-Linux application development the preferable choice is a Linux Host(x86) machine with a ARM toolchain installed in it. In Ubuntu Desktop machine you can use the following command to install ARM toolchain:
apt-get install gcc-arm-linux-gnueabi
After toolchain installation you can use the following command for cross compilation:
gcc-arm-linux-gnueabi-gcc -o hello hello.c
Using this toolchain you can cross-compile your C program using Standard C library without the need of startup code. Applications can be cross-compiled at your Host Linux(x86) platform and run on Target Linux(ARM) platform.
Windows version of ARM-Linux Toolchain is also available. You can get it from here.
Linaro Developers Wiki - an open organization focused on improving Linux on ARM, will be a good reference for your work.

linux, freepascal, fp-ide: No debugger support availble. How to enable debugger?

How to enable debugger in fp-ide? I read somewhere that I should compile fp-ide from sources, but I don't know how to do this. Can someone help me?
Get the generic linux tar installer (fpc-2.6.0.x86_64-linux.tar) for FPC from http://www.freepascal.org/down/x86_64/linux-hungary.var It comes with a precompiled IDE with integrated debugger support and it works fine at least on 12.04 LTS.
I wasn't able to find a PPA for fp-ide, but I can describe how the CLI IDE is compiled on Arch Linux as documented in the repository. Do note that compiling will not enable the debugger in the CLI, as it seems to be an incompatibility between gdb and fp (fp-ide) according to e.g. this bug report in Debian. On Arch Linux, the fpc package also doesn't support the debugger in fp by design (it is explicitly disabled using the NOGDB flag).
Anyhow, here goes the compilation process:
Make sure you have FreePascal installed already, as you need it to compile the IDE
Download the source tarball
Extract the tarball to a location of your convenience and cd into that directory
Execute the following code from within your shell:
pushd fpcsrc/compiler
fpcmake -Tall
popd
make build
make -j1 install
# in Arch, the switch "NOGDB=1" is present in both make lines
That should compile the IDE and install it (you can even try to integrate it in dpkg by using checkinstall instead of make install, but take a look at the Arch PKGBUILD to see an example of what might be needed).
But why do you use the command line IDE fp instead of lazarus? With lazarus you can also make console applications and it offers much more features (e.g. working debug support).

Unable to run a bundle built using the 'mkbundle' command

I am able to build a bundle using the mkbundle command. After that when I try to run the application in another Linux system where Mono is not installed, the application is not executed and there are no errors.
Mkbundle alone will build a binary that still has some dependencies on mono libraries.
If you want to be able to 'just drop your app on any recent Linux box and start it' you should do a static build with mkbundle --static

Resources