How to compile something using arm-none-eabi-gcc on windows - raspberry-pi

I am trying to build a project for a raspberry pi 4, using windows 10 as the building platform, I have the compiler installed, arm-none-eabi-gcc however every piece of information I've learned about it relates to how to run it on a linux machine, and I don't really want to run a vm just to load the linux environment, so how do I run the compiler on windows 10, Do I run it from Cmd? or is there a different method to do this?

You could check this PreBuilt GNU Toolchain for building natively on Win10.
Otherwise you could also setup a WSL environment in your win10, then you would also be able use any linux toolchains.

You can download the IDE DS-5 Community Edition
https://developer.arm.com/tools-and-software/embedded/legacy-tools/ds-5-development-studio/editions/community-edition
You can download the toolchains:
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
Then follow the steps in this tutorial:
https://developer.arm.com/tools-and-software/embedded/legacy-tools/ds-5-development-studio/resources/tutorials/getting-started-with-ds-5-ce-and-armv8-foundation-platform
https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/running-bare-metal-software-on-the-raspberry-pi-3-using-arm-ds-5

You should have the arm-none-eabi-gcc.exe for Windows Compile.
Also, you have the linux environment like MinGW and use installed terminal(xterm).
then, you have to copy the .so files into MinGW /lib or /usr/lib folder under C:/MinGW.
Hope this would be helpful for you.

Related

compile perl script using par::packer and run it on different linux versions

I have a Perl script which I tried to use PAR::Packer in order to make it a standalone executable so it runs without having Perl on the target machine (because of security reasons).
I used WSL on Windows to pack the Perl script, but the problem I have when I run it on the target machine is the error: "version `GLIBC_2.29' not found".
I ran the command ldd --version and the version on the target machine is 2.17.
The problem I am facing is I cannot install anything on the target machine so I cannot install Perl + PAR::Packer to compile the script and then distribute it to the other machines that are gonna use the script (it's gonna be used in an image so lots of machines).
I cannot seem to find a solution or alternative for this, would love any help from the community.
Edit:
the ubuntu on my WSL was ubuntu 22, the target machines runs redhat and not debian variant, IDK which version as they are a custom linux made by the company i work in.
why am i stuck?
the main problem is that PAR::Packer isn't working on old ubuntu builds ( before 14) and at ubuntu 14 the glibc is already 2.22 while on version 12 its 2.15 so I need to compile the script on old ubuntu (version 12) but the compiling program (PAR::Packer) only works on ubuntu 14 and above so I am stuck in a loop and would apprentice any help or even alternatives for this problem.
Thanks!
Edit: the ubuntu on my WSL was ubuntu 22, the target machines runs redhat
Your problem is that you are trying to build on newer Linux machine, and run the resulting binary on older Linux. That doesn't work (without additional effort).
The simplest solution is to build on the oldest Linux distribution you need to support, possibly in a docker container.
Some other solutions are listed here.

Talend Installtion on Ubuntu

I would like to install Talend Open Studio on Ubuntu 18.04 LTS, but the Talend website shows only download options for Windows and Mac only. Where do I find the Linux version?
If you download the Windows version, you should receive a zip file. The zip file should contain binaries for both Windows and Linux. To start the Studio on Linux, just run the bash script contained within.
I'm not sure why they don't label the download as Windows and Linux, hopefully they fix that at some point to make it a little clearer.
I was able to download zip file here:
https://sourceforge.net/projects/talend-studio/files/latest/download

Is it bad to have both MinGW and Msys2 installed?

I have minGW gcc installed on my computer from previous projects, and I have recently installed Msys2 so I could develop with GTK. Is it bad to have MinGW and a instance of MinGW on Msys2 installed on the same computer?
The only problem is that it might confuse you. It should not cause any real issues though, because MSYS2 does not add itself to your PATH environment variable, and when you run MSYS2 it will (by default) use a different PATH so you can only run Microsoft programs in C:\Windows and MSYS2 programs. So this means you won't accidentally run the compiler from one environment when you are in a different environment.

i had developed a tool using gtk in linux. its working fine now i want to make it port to windows?

For that tool i used glade -3 to build windows in linux and imported inside code using gtk builder, now want to port this tool to windows xp what is best way ?
thanks in advance :)
Install the GTK-all-in-one bundle available on gtk.org. Installation procedure ins included in the README file contained in the bundle. Then, install MinGW on your Windows platform, and use mingw-get (the package management tool), to install msys (a shell). For a 64-bits build, you may use MinGW-64 (which is a fork of MinGW). You then will have a platform for developing on Windows.
I personally used that platform with CMake to successfully build some code sample. Read my answer on How do I link gtk library more easily with cmake in windows? for a CMake + GTK code sample.

Compile GTK+ with Cygwin

I have created an application in linux with GTK2 as GUI. It uses some linux-specific headers (e.g. arpa/inet.h) so to run under Windows I have to compile it with Cygwin. I downloaded the latest installer and choose to install GTK2 and its dependencies. My program compiled fine. But it needs X server to be running! I has old-style, ugly graphics and it doesn't open in a different window, like all Windows' applications do, but inside X server's window. Because of this it can't be portable. I found that guide, which is exactly what I need, but I get an error when I run "make" for GTK2 (undefined reference for _IID_IFilePersist, although I have uuid installed - also tried it with gtk2.20). Can you suggest what to do to build my application with cygwin? Or what do I need to install for the "_IID_IFilePersist" error? Thanks in advance!
There's prebuilt packages for windows that doesn't rely on X. http://gtk-win.sourceforge.net/home/index.php/Downloads
If you don't want X server to be running, then you're going to have to port the linux-specific parts of your code and compile with MinGW rather than Cygwin.