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

Re: [HTCondor-users] Compiling Linux code for Windows, incl libraries



I would recommend getting a copy of the DevStudio tools (you don't need the IDE for this).
and run

    link -dump -headers  <your_exe>

Are the headers equivalent to what you get when you use the MS tools to build an exe?
I would look for differences in the target Windows platform, and the target architecture.
Does the executable have an entry point defined?  The ms c-runtime normally provides
the entry point,  but if you aren't linking to that, then someone else has to.

You can also check to see what libraries and symbols your executable needs using this tool.

    link -dump -imports <your_exe>

The current versions of Windows are fairly reliant on either a side-by-side .manifest file
or a manifest imbedded in the .EXE itself in order to turn on certain features or find some libraries.
If you target WindowsXP instead of a current flavor, you might find that it's less reliant on
a manifest file.

Also, In my experience, dependency walker doesn't get the dependencies wrong.

-tj


On 7/9/2013 7:16 PM, Murray-Luke Peard wrote:
Hi everyone,

Here at Sydney University, we are trialling a couple of student labs with Condor and making them available to select researchers as a pilot to get their feedback.

As you might expect, the labs are Windows, and the researchers mostly use custom C++ code, developed with Linux in mind. This code makes use of a variety of libraries, including ImageMagick, FFTW, Boost etc, amongst others.

Although I have managed to compile all this code for Windows, using MinGW, I have not been able to generate a portable, self contained EXE file which can be shipped to Condor execute nodes to be run. After the initial hurdle of compiling with MinGW, finding and using Dependency Walker (which didn't seem to direct me to the right DLLs anyway), and then repeatedly attempting to run the EXE, finding the DLL it complained it couldn't find and packaging it all up using Packager (https://code.google.com/p/exe-packager/), I now have the ubiquitous "The application was unable to start correctly (0x000007b)" error message. Same result on both 32bit and 64bit windows.

So, I'm at something of a brick wall. This is really a critical step for the success of the Condor pilot at the University of Sydney, since our labs are all Windows, and researchers are far more likely to have Linux code than Windows. Although it may be possible in the medium term to install Cygwin on the lab machines, we would still have the issue of appropriate libraries etc being available on the execute machines.

Can anyone recommend a "best practices" guide, or does anyone have experience with this themselves? Any direction at this point would be much appreciated.


MURRAY-LUKE PEARD | High Performance Computing Support Analyst
Information and Communications Technology 
                                                                                                                                                           !  &n bsp;           
THE UNIVERSITY OF SYDNEY
G12 - Services Building  | The University of Sydney | NSW | 2006                
T +
61 2 9351 5066  | E 
murray-luke.peard@xxxxxxxxxxxxx  | W  http://sydney.edu.au/ict



_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting
https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users

The archives can be found at:
https://lists.cs.wisc.edu/archive/htcondor-users/