Skip to main content

Compiling win32 binaries on linux

Old habits are hard to be dropped.

As a long term linux user I fell much more comfortable using my old emacs text editor with a good old "green on black" Xterm terminal console window.

So we have some legacy code here on my current job, those which must run also on windows. I was making some improvements on it, porting to use wx-widgets, compiling and using it on linux. But some windows users started to want those improvements on their widows versions. As the only WX programmer around, I was the only person able to compile the windows version. As I think future improvements would also be wanted by the windows users, I decided to deploy a windows wxDevCPP installation on wine on my linux workstation.

Well the first steps are simple:
  1. First get a wx-DevCPP installation executable on
  2. Install it using wine
  3. Open your .dev files on wxDev
  4. Build it
Now you have a Makefile.win, which can be used to directly compile win32 binaries.
A batch file could also be written to make things easy:
compile.bat
@echo off
set PATH=%PATH%;C:\Program Files\Dev-Cpp\bin
c:\Program Files\Dev-Cpp\bin\mingw32-make -f Makefile.win clean
c:\Program Files\Dev-Cpp\bin\mingw32-make -f Makefile.win

The command "wine cmd" can be used to enter on a windows command line console. In this console one just need to call the batch file (compile.bat).
A special win tag can be added to the linux Makefile, so one can use a make win directly from the linux console:
win:
wineconsole --backend=curses compile.bat
And that is it, now to build a linux binary one just need to type make, and for a windows binary, make win.
This procedure is suitable for small projects, I haven't tested with big projects.

Comments

Popular posts from this blog

More trickery with gnuplot dumb terminal

In my post " Plotting memory usage on console " the chart doesn't pan the data. Now, using a named pipe, the effect got a little bit nicer. First, we have to run the memUsage.sh script to get a file filled with memory usage info: ./memUsage.sh > memUsage.dat & Then we have to create a named pipe: mkfifo pipe Now we have to run another process to tail only the last 64 lines from the memUsage.dat while [ 1 ]; do tail -64 memUsage.dat> pipe; done & And now we just have to plot the data from the pipe: watch -n 1 'gnuplot -e "set terminal dumb;p \"pipe\" with lines"' And that is it!

Replace transparency in PNG images with white background (for lots of files...)

I had to remove transparency from a PNG image file from the command line... and stack overflow came into my help[1]... But I needed it for lots of files... then, adding a "while read line" did the job: ls -1 *.png |  cut -d . -f 1 | while read line; do convert -flatten $line.png flatten/$line.png ; done; [1] Replace transparency in PNG images with white background https://stackoverflow.com/questions/2322750/replace-transparency-in-png-images-with-white-background

Pettry rendered LaTeX equations using PHP

When I was writing a simple scientific webapp, during my undergrads studies, I needed to generate some equations to be shown by the app. I was already familiar with LaTeX equation formatting syntax, so I decided to use this nice peace of software. So, after "googling" a little, I found the imgtex , written by Koji Nakamaru , which is a fast CGI script, written in perl. What I did, was port it to PHP. To run it, you must have a LaTeX distribution and the dvipng software both installed on the same machine which you will run the PHP script. Here is the PHP code: To use this code, you just have to pass the LaTeX commands through GET to the PHP. For example, adding the following string to your URL: http://localhost/imgtex.php?res=300&cmd=x=\frac{-b\pm\sqrt{-4ac}}{2a} The res variable sets the resolution for the generated image and the cmd specifies the LaTeX command. This way, the above URL will produce the following image: