Xmingwin For Cross Generation Applications
An anonymous reader writes "Xmingwin makes it practical to generate Windows programs from a Linux server. This column gives a recipe for setting up Xmingwin, outlines the most important reasons for doing so and shows you how to generate executables for multiple platforms -- including Windows DLLs -- from a single Linux source."
I've been trying to migrate people _away_ from windows, this only makes it easier for them to stay ;-)
;-p
Of course it also help linux break into places it wasn't allowed before, so i've got to say bravo for that!
Still, should be running BSD
/* oops I accidentally made a comment, sorry */
Winner of Company Most likely to produce Buggy Software....
The people who do this. You can produce work on the Server but to properly test you still need the windows environment. So you have to deploy to that, given that you need a testing environment per developer as well as for UAT and QA then your costs aren't really reduced. The advantages in terms of compile speed are killed in terms of transfer and deployment.
Somebody somewhere clearly things they need this, somebody somewhere doesn't work in large teams and on commercial apps.
Sorry to dis someones work, but I'd be more interested in a decent Open Source windows IDE on windows than being able to do a fraction of the work on Linux... and I loathe MS-Windows. Why do so many Open Source projects have to ape MS rather than take on the beast.
Too many people, too many projects. Come and save us IBM.
An Eye for an Eye will make the whole world blind - Gandhi
This sounds like intriguing functionality, but really can't they find a better name than Xmingwin? Its a horrible name, practically unpronounceable, difficult to remember and spell, easy to confuse with other similar projects.
I know this might sound like a troll but I'm serious about this. Projects do themselves no favors by adopting badly thought out names. A confusing name makes it less likely that I will use or evangelize this software. When someone asks me for a recommendation for a software platform for generating Windows executables on our Linux servers I'll be embarassed to say Xmingwin (I work in a corporate environment). Its hard to say, hard for someone to understand when said and worse it sounds amateurish. Its almost as bad as Ogg Vorbis: very geek-cool to use Klingon but the kiss of death in a serious corporate environment.
This isn't a slam on open source - god knows there are too many dumb names in the closed source world - but a plea for developers to think about naming. Its an important part of getting your technology talked about and accepted.
Sailing over the event horizon
- lets see, we have
...
- The mingw-runtime package
- The gcc-mingw32 package
How exactly is this different? We've been able to produce win32 executables using mingw and gcc for years now.For those of you wondering, this only works for apps that you are currently writing. It isn't going to work for just any windows app, but it's still kinda neat.
---
If you just signed up for a new sprint pcs cell phone I can get you a $10 rebate. Email me at jchawk@ my website (tr0n.com) that's a zero in tr0n.
Lots of people are posting on how this is potentially a bad idea. Sure, it's not likely to be as mature as other compiler environments. There's all kinds of small shops where this could simplify build infrastructure, though. Maintaining different build servers for all the platform variation a company chooses to support can be costly to build, especially with the infrastructure to do revision control and fire off simultaneous builds and package things together. If a company just needs to produce command line tools or simple DLL's to accelerate code in a scripting language, this might be a good choice.
Probably the largest win is allowing developers to unit test application logic on their local Windows desktop, if they prefer that environment, before doing final unit test, integration test, and deployment on top of *nix/Linux.
Placing a .EXE file on a Linux server helps spread virii, because the Linux server won't check to see if the file is infected with a Windows-based virus. This is bad because if the file becomes infected, the infection will be missed.
I'm making the generous assumption that you aren't saying that the Linus system will create an infected executable. Even so, there seem to be some unwritten assumptions here.
First, you assume that there is an infected Windows system. Just about every commercial environment that I'm aware of runs some form of anti-virus software on every Windows-based server and desktop. This means that there is little chance of infection by a known virus. I will readily conceed that unknown infections, such as Slammer, can still be a problem, but that leads to your second assumption.
You seem to think that any Windows-based system with read-access to the file also has write-access to it. This runs counter to the best-practices adopted at most sites. A fundimental rule of security is to provide no more access than is needed to get the job done. File servers generally restrict the average user from modifying static resources. In this case, I would include anyone with a Windows-based system as an average user. Since they aren't running a developement environment, there is no need for them to write to the directories where the software is stored.
So, did I miss something, or did you post of subtle troll?
Nothing for 6-digit uids?
Or are you saying that Windows executables are somehow more infection prone than ELF or Mac binaries?
It pulls everything down the tubes
Now, now. That's just your inner zealot speaking.
I've been using a MINGW32-based linux->win32 cross-development environment for years. The same concepts apply as for cross-compiling to different hardware architectures. This is definitely not new software. With properly written makefiles, you can build to target both Linux and Win32 platforms from the same source tree and build environment. Of course you must test on both platforms, but having a setup like this definitely makes it easier to build large projects for both Windows and Linux.
Wine works by reimplementing a part of the Windows API. Mingw32 is a compiler which takes C/C++ programs and Windows libraries and generates Windows executables. Its C/C++ support is just about flawless as it uses GCC; it can link programs against native Windows libraries just like any Windows compiler would; and it produces ordinary Windows executables.
These Windows executables, however, won't run natively on the (Linux) host machine.
Note that this is also not an automated system for writing portable programs; Xmingwin won't compile anything that wouldn't compile on a normal Windows machine. But if you have code that is portable, you can save a lot of hassle by having just one machine to build binaries for several platforms.
Every cool project should have a FAQ entry explaining its name. If the name is too easy, or has an obvious pronunciation, then it can't be a cool project. Ideally, there should be long-standing flamewars about it (i.e. is it "vee-eye" or "veye"?).
Do you mean: Q80520 - How Microsoft Ensures Virus-Free Software?
It's not compilation, but the CD-mastering. (this used to be in the MS KB, but it seems to have gone).
"don't fall into the fallacy of believing that Perl can solve social problems. Maybe Perl 6 can, but that's a ways off"
The plural of "virus" isn't "virii." There is no such word. The plural of "virus" is "viruses."
Here's a good explanation from cdknow.com, quoted here in its entirety because the people who most need to read this won't click on a link.
More plural-of-virus resources:
perl.com, the canonical and exhaustive source
The alt.comp.virus FAQ
Jonathan de Boyne Pollard's Frequently Given Answer
Merriam-Webster's "Word for the Wise," January 20, 2000.
I write in my journal
Like a lot of people here, I don't get it the point. Cross compilers are for developing for platforms that can't host development tools. When I did cross platform (Windows, Solaris, HP-UX) development, my tools were Vim and CVS plus the native compiler. Which platform would I edit on? Whichever was most convenient that moment.
On the other hand, for those who want to use MinGW for Windows development, check out the GPL Visual-MinGW. Al Stevens had some very nice things to say about it in the December 2002 issue of Dr. Dobb's. (The article isn't online, but the issue's table of contents is here.)
There are some significant licensing differences between MinGW and Cygwin. The Cygwin runtime is GPL (not LGPL!), but can be licensed for non-open use. The MinGW runtime is public domain.
Stupid job ads, weird spam, occasional insight at
Beyond just automated builds, my big issue with VisualStudio is that it sucks boulders through capillary tubes if you ever have to change compilation options on more than one build target, or add a bunch of "only slightly different" items to a build. Besides the fact that it's often bloody impossible to figure out where it's setting a given compiler option.
And when I've used the VC command line tools and called up Microsoft to report bugs I've gotten laughter, at best. They simply won't support anything but the visual environment.
This gives a full-featured development environment using real production quality tools in an environment that won't be blowing chunks every time I try to do something remotely outlandish with the USB bus. I've no problem with having a Windows box beside my Linux box for running the app, I just want a stable, full-featured development environment. Linux cross-compiling onto a Samba mount is closer to that than Microsoft's been in many years.
Canadian Cross is when you are building a cross compiler to be hosted on a different platform than you are building it on.
Example:
Using a Linux-x86 system to build a windows hosted powerPC compiler.
"Canadian" refers to there being three different platforms (parties*) involved: the target platform (powerPC), the hosting platform (windows), and the platform building the cross-compiler (Linux).
* There used to be three national political parties in Canada before those pesky Quebecois formed a national party.