[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: "Cross-compiling for Win32" script vs. rosBE? Debian Win32 port alive?

On Tue, Jun 19, 2007 at 11:43:38PM -0500, Drew Scott Daniels wrote:
> How does your script for Cross-compiling for Win32 compare with rosBE?

Do you mean:

I don't know RosBE, but it semms to be more comparable with MSYS(+GnuWin32)
or Cygwin.

My goal is to build win32 applications from a Unix system, not from
windows. This has several advantages over native win32 compilation,
because it enables great simplifications:

1) no need to port the development tools

    If you're building on a Unix system, you already have tar, bzip2,
    lex, yacc, a Perl interpreter, etc.

    All those build tools and interpreters don't need to be ported, you
    can just use them. MSYS and Cygwin, however, need to port them to

2) no need to compile whole source packages

    When you compile a library, you don't need to build the command
    line tools, because they won't run in Unix anyway.

    Say, for example, that you want to cross compile libcurl. Then
    you don't need to build the "curl.exe". Just build the "libcurl.a".

3) no need to compile shared libraries (DLL files)

    When you port a big application to win32, you usually want to
    present one package for the windows users, that includes everything
    they need to run it. The simplest way to achieve that goal is to
    statically link all needed libraries. So you just need e.g.
    "libcurl.a". You don't need to build "libcurl.dll" and "libcurl.dll.a".

    Even if you need to provide some libraries as DLL files (e.g. glib, GTK),
    you should put them into your "Programs" directory, separate from any
    other application.

    If you don't, i.e. you install them system-wide to "Windows/System",
    you'd have to take care of different DLL versions, which isn't not
    possible. Windows doesn't have a suitable package system, so you're
    going to have a lot of trouble, the so-called "DLL hell".

I usually agree that the best way to port an application to platform X
is to natively build it on platform X. However, this is only true for:
    X != embedded (incapability of the hardware), and
    X != win32 (incapability of the OS).
For those X you need a X-compiler (cross compiler).

> What other alternative are out there?

This question is answered in my article:


> Does this mean the Debian win32 port is alive?

No, but it may help them. I don't belong to Debian-win32, and in my
opinion, it's nearly dead. For the above reasons, I also think that's
the wrong way if you just want to port an application to win32.

The main problem of projects like Debian-win32, MSYS and Cygwin is
that they try to solve a big problem with a small community.

The main idea behind my script is to simplify the problem and provide
a solution that can be fully understood and maintained by a single

> I never considered using slind for a new architecture like win32...
> Is the libc msvcrt? Can the libraries be dynamically linked?

Please repost this question to the debian-win32 list.



Volker Grabsch
NotJustHosting GbR

Reply to: