Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Wine Software

Linux for Win32 Development? 16

A nameless member from Clan Anonymous Coward asks: "I've been considering installing Linux as the primary system on my laptop, but I question how suitable it is for Win32 development. I use Delphi as my primary development environment, and have considered running WinNT under VMWare (or possibly Delphi under Wine). What experiences have you had with developing Win32 apps under Linux, using Win32-based tools?" This is a neat thought. Has anyone had any success with this?
This discussion has been archived. No new comments can be posted.

Linux for Win32 Development?

Comments Filter:

  • Never mind..

    That's what I get for posting on Slashdot before I'm fully awake!
  • I have a dual celeron box (ABIT BP6 Motherboard).
    If you run it in VMWARE, NT only uses 1 proc, but then the other one is still there to run all your linux apps :-)

    VMWARE and dual processors make a good couple...

  • If your application can be fielded entirely in ANSI C and its libraries, you can just use dos-gcc to compile up a DOS executable under Linux (dos-gcc is djgpp built as a cross-compiler). I build each sfront [berkeley.edu] release under Linux for both Linux and DOS/Win32 using dos-gcc, and it works great. It was worth purging gratiutious non-ANSI-libs from the source tree ...
  • Cygwin binaries have to be released under the GPL, since cygwin.dll falls under the GPL. If that is a problem, mingw32 is a better choice.
  • I built a cross compiling gcc that runs on linux and compiles for windows/mingw32. Works well for what I need: producing a windows binary once in a while. For testing I use wine. My primary target is of course linux.
  • Finally, go grab some filesystem drivers that can read Ext2 ...

    Explore2Fs [swin.edu.au]

  • In addition to the MinGW [mingw.org] (Minimalist GNU Windows) package, which is basically gcc/egcs for Win9x/NT with a Windows runtime environment (libs, etc.), there are several IDEs and the ilk that are cross-platform. The one that springs immediately to mind is VIDE [objectcentral.com], which compiles and runs under Linux and Windows. There is also a brief HOWTO for building the MinGW cross-development tools. You can build it in a terminal and test it in WINE if that's your fancy, or dual-boot to Windows to test it out. The great thing about this method is that it's free (speech and beer).

    Cheers!

    JimD

  • Ok, I used to think I was preety good with computers, but everything from #1-#12 posted have gone almost right over my head. I feel little. =(
  • http://www.devolution.com/~slouken/SDL/Xmingw32/

    along with

    http://www.gimp.org/~tml/gimp/win32/

    Should give you all you need. Using the mingw32 target of gcc, you can use DirectX, Gtk+, SDL (Simple DirectMedia Layer), and plenty of other libraries that have been ported, all from the safety and convenience of your own UNIX development environment.

    By the way, the difference between "mingw32" and "Cygwin" is that Cygwin provides a POSIX compatibility layer, while mingw32 uses the bare Microsoft C Runtime DLLs. (Of course, if you choose to use GTK+ or something, you'll still have to distribute those DLLS.)
  • (Placing tongue firmly in cheek)

    Just use Java! :)


  • Regardless of the intent, the web has obviously become a segregated place. I am the manager of the programming department for an internet startup. I decided to get new boxes for myself and the other programmer. Faced with the situation of working on a linux workstation, but needing to test on mac and windows in IE and Netscape for full compatability here is my solution:

    Each programmer gets a pc running linux and VMWARE. The pc is a AMD K7 700mhz with 512mb of pc100 dimms. 7200rpm 20gb hd and 32mb matrox g400 graphics card. This allows the programmer to run as many versions of windows, beos, or *nix as deemed necessarry and still develop in the preferred linux environment.

    as for the macintosh one G4 400mhz with 256mb of ram will be used for shared testing.

    while all of the other programmers will be doing web-based, i will be using these systems to develop voice over IP. This type of setup should be extremely useful, especially for testing the networking protocols between virtual machines.

    hope all that helps.
  • is now a part of Redhat... check it out at
    http://www.cygnus.com/cygwin/

    Though it only Lists NT4 Sp3 as supported, it runs on 95/98/2k, and the mailing list is great for help. Usually lots of quick, accurate responses. It's come a long way since I first tried it...

    A Good Thing(TM)
  • My company does much of its work in the Windows Environment, while I remain a *NIX partisan (particularly Linux).

    In order to preserve my sanity, I continue to use Linux, but run NT on VMware to support Office, etc. It's all running on a Sony Z505-Rx, with VMware and NT as a "guest". It works very well for me, the NT guest is fast enough in pure computation, slower in system access, but still acceptable. I run RedHat 6.1, XFree86 3.3.5, and VMware displays nicely either in an X window or full-screen.

    If you use VMware on a portable system (like a laptop), be *certain* to shut down NT and VMware when changing network configurations since they like to lock the system up if they get confused.

    Other than that proviso, I find the implementation very effective. I've configured my NT guest to use DHCP, and it participates fully and correctly in all Windows-based networking in our office as well as in my home network. This includes the Linux host running Samba 2.0.6, where I keep all "workspace" files, with NT accessing the Linux system as if it were a server on the Windows network. This makes the source tree available to both Linux and NT.

    Count on NT taking at least 1.5 gig of disk and 64 MB RAM to run reasonably. The Z505-Rx comes with 128 MB RAM, so VMware/NT scarf half my RAM (it's configurable, but have you ever tried running NT with less than 64MB? Dont't try it at home, kids! It's not pretty!). I am seriously considering upgrading to 192 MB for this reason. The Z505Rx runs a Pentium-II at 400 MHz which is feel is a minimum CPU speed for reasonable responsiveness.

  • by MrHat ( 102062 ) on Tuesday February 29, 2000 @08:50AM (#1238190)
    I hope this suggestion doesn't detract too much from your original intent to run Linux, but why not dual boot? Compilers under wine tend to be iffy, and there's no good way that I know of to cross-compile for Win32 using your toolset.

    For a while I used VMware on my trusty U2W-SCSI PII box and found the whole experience a little bit too sluggish for daily use (I tried just about every flavor of Windows I could, including 2000). The processor benchmarked at around 333mHz inside the VM, but memory allocation and disk I/O on the virtual disk dragged down performance (yes, even on 10,000 RPM Ultra2 SCSI).

    Here's my proposal, assuming you have sufficient disk space:
    • Divide the laptop's hard drive into at least 2 partitions; use the NT Boot Loader or LILO to dual boot between the two.

    • Since dual booting every time you want to access another OS gets annoying, purchase a copy of VMWare. There's an option to mount physical partitions like virtual disks, so you should be able to access either NT from Linux or Linux from NT like you were booting to the partition (albeit slower). This could allow you to run both Linux and Windows applications at the same time, and would allow for an elementary form of filesharing using Samba and the vmnet kernel module. You get better I/O performance this way too, which you're going to want on a laptop drive.

    • Finally, go grab some filesystem drivers that can read Ext2 and NTFS/FAT. Read-only NTFS (and experimental read/write) is already in the stable Linux kernel. The full list of supported filesystems for Linux is in the Module-HOWTO on your local howto site. For any other OS, check out the Filesystems HOWTO [penguin.cz]. This document is a "Filesystem map" that maps many types of filesystems to host OSs - it has just about every combination you could ask for. This will allow you to bypass VMware if you just want to view or edit files on the other OS's partition.

    I think this method will prove more productive and more beneficial in the long run. Windows is still the right OS for Windows programming - this doesn't mean you can't mix linux in on the same machine, though.


    43rd Law of Computing: Anything that can go wr
  • by mrossbrown ( 70015 ) on Tuesday February 29, 2000 @07:29AM (#1238191) Homepage

    I have a fairly simple machine, PII 333 with two 4gig harddrives. I have it dual booted with Linux (Redhat 6.0) and NT 4.0 with LILO being the bootloader.

    Here's the interesting part: when I boot under NT I can use VMWare [vmware.com] to get at the raw Linux partition, and when I boot under Linux I can use VMWare to get to the raw NT partition. Each OS has a specific configuration depending on whether it's a guest or host (using Hardware Profiles under NT and VMWare's dualconf under Linux).

    Then it starts getting complex with host-only networking under VMWare for each environment. I actually have 5 different IPs for my one machine:

    192.168.0.2: Native (host) NT or native Linux

    192.168.101.1: VMNet Bridge
    192.168.101.2: NT host/Linux host
    192.168.101.3: Linux guest
    192.168.101.4: NT guest

    So while I have NT as a host, I can use samba to send files to Linux and then test them out. As far as development goes on NT, I have Visual Studio 6.0, Borland's free compiler, and Cygnus's cygwin [cygnus.com] (with mingw32 [wisc.edu] built under cygwin). I also have cross tools under cygwin that target Linux and MSDOS (djgpp).

    When I use Linux as a host (99.5% of the time), again I can use samba to send executables to the NT guest and try them out *immediately* after compilation. This is a plus for libraries such as SDL, etc. I use pgcc-2.95.2 [goof.com] targetted to mingw32, cygwin (for the hell of it), ms-dos, and Sony PlayStation.

    The main reason I use this setup is for hardware/processor feasibility, I have a TNT2 Ultra that isn't supported in any way under VMWare, therefore booting NT means I get 3DSMax, etc. that takes full advantatge of my hardware. Also, I have an ISA card that talks to my PlayStation, and the majority of dev-tools (with the major exception of psxdev [psxdev.de]) for the PSX are Win32 only (VMWare can't handle non-standard hardware).

    How I set this up:

    Install NT on the second harddrive

    Configure all drivers, etc. for NT (might want to wait for this step to make creating Hardware Profiles easier)

    Install Linux on the first harddrive w/ LILO

    Setup VMWare on Linux to talk to NT as a guest (using raw disk partitions)

    Boot *NATIVELY* into NT and copy your existing profile into a new Hardware Profile (System Control Panel)

    Disable any devices in your new profile (call it "Virtual Machine") that VMWare doesn't support (Devices Control Panel)

    At this point if you want you can setup VMWare for NT to access Linux as a raw partition

    Boot into Linux and test your NT under VMWare, if some drivers fail, disable them under the Devices Control Panel

    If you installed VMWare for NT, tweak your Linux dualconf configuration (I had to manually add a condition for switching the links to the X server)

    Setup Host-only networking, samba, etc.

    I know I didn't go into any detail, I don't have the time to write everything out and I'm not at my machine so I might have missed something. I'll post a couple articles at my site [uwm.edu], etc. when I have some time (this weekend?).

    Marcus

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...