librelist archives

« back to archive

\path\to\exe is not a valid win32 application

\path\to\exe is not a valid win32 application

From:
Chuck Remes
Date:
2011-09-28 @ 16:21
I have Shoes building. However, upon launch I get a dialog box from the OS
saying that the exe is not a valid win32 application.

I googled around for this problem and got the hint that I should verify 
that all library dependencies are being satisfied. So, I ran Dependency 
Walker on the Shoes.exe and discovered several problems.

1. Most of the dependent libraries are compiled for x64. The Shoes exe and
the DLLs that were downloaded for it are all x86.

The OS is Win7 x64.

I don't know how to solve this. I thought the recipes would automatically 
compile for the correct target architecture. ???


2. There are unsatisfied dependencies due to 4 missing DLLs.

IESHIMS.DLL

LIBFONTCONFIG-1.DLL

FREETYPE6.DLL

LIBPNG14-14.DLL

When I examine the Shoes recipe that *used to work with MRI 1.9.1* I don't
see any references to these DLLs. I do see that the build for the Mac OSX 
platform has libfontconfig and libpng as dependencies, but the Windows 
recipe never had it. I can download these prebuilt DLLs and drop them in 
to the directory containing the EXE, but I am curious to know how this 
worked in the original build recipe.

Google tells me that the FREETYPE6.DLL error is a common Windows problem 
(I've never seen it before). I can easily download a prebuilt binary and 
drop it in, but I am curious how this got broken.

IESHIMS.DLL is apparently a part of Internet Explorer 8. That needs to be 
on the PATH to discover this DLL. So, how did Shoes get a dependency on 
IE8 all of a sudden? :(


3. A user on irc (phinze) fixed some of the problems with compiling and 
linking the C libs in sandbox/shoes/req but he didn't commit those changes
anywhere that I can find. Ultimately this is a problem that needs repair 
before we can "ship" so I'm hopeful he pops back into irc and shares his 
solution.

We are close!

cr

Re: [shoes] \path\to\exe is not a valid win32 application

From:
Chuck Remes
Date:
2011-09-28 @ 19:59
On Sep 28, 2011, at 11:21 AM, Chuck Remes wrote:

> I have Shoes building. However, upon launch I get a dialog box from the 
OS saying that the exe is not a valid win32 application.
> 
> I googled around for this problem and got the hint that I should verify 
that all library dependencies are being satisfied. So, I ran Dependency 
Walker on the Shoes.exe and discovered several problems.
> 
> 1. Most of the dependent libraries are compiled for x64. The Shoes exe 
and the DLLs that were downloaded for it are all x86.
> 
> The OS is Win7 x64.
> 
> I don't know how to solve this. I thought the recipes would 
automatically compile for the correct target architecture. ???
> 
> 
> 2. There are unsatisfied dependencies due to 4 missing DLLs.
> 
> IESHIMS.DLL
> 
> LIBFONTCONFIG-1.DLL
> 
> FREETYPE6.DLL
> 
> LIBPNG14-14.DLL

I copied these DLLs (except for IESHIMS) from a working installation of 
Shoes into the build target. Dependency Walker then said I needed 
LIBEXPAT-1.DLL, so I copied that over too. Dependency Walker gave me the 
green light (except for IESHIMS and the x86/x64 issue).

On irc, phinze lamented the lack of good errors and the ability to run 
gdb. BUT, we *can* run gdb.

So, I fired it up with "gdb --args shoes.exe" and it loaded the symbols. 
When I tried to run it, it errored out immediately:

  Error creating process 
C:\Users\cremes\rubyinstaller\sandbox\shoes\dist/shoes.exe, (error 193).

Ideas?

cr

Re: [shoes] \path\to\exe is not a valid win32 application

From:
Chuck Remes
Date:
2011-09-28 @ 16:31
On Sep 28, 2011, at 11:21 AM, Chuck Remes wrote:

> I have Shoes building. However, upon launch I get a dialog box from the 
OS saying that the exe is not a valid win32 application.
> 
> I googled around for this problem and got the hint that I should verify 
that all library dependencies are being satisfied. So, I ran Dependency 
Walker on the Shoes.exe and discovered several problems.
> 
> 1. Most of the dependent libraries are compiled for x64. The Shoes exe 
and the DLLs that were downloaded for it are all x86.
> 
> The OS is Win7 x64.
> 
> I don't know how to solve this. I thought the recipes would 
automatically compile for the correct target architecture. ???
> 
> 
> 2. There are unsatisfied dependencies due to 4 missing DLLs.
> 
> IESHIMS.DLL
> 
> LIBFONTCONFIG-1.DLL
> 
> FREETYPE6.DLL
> 
> LIBPNG14-14.DLL
> 
> When I examine the Shoes recipe that *used to work with MRI 1.9.1* I 
don't see any references to these DLLs. I do see that the build for the 
Mac OSX platform has libfontconfig and libpng as dependencies, but the 
Windows recipe never had it. I can download these prebuilt DLLs and drop 
them in to the directory containing the EXE, but I am curious to know how 
this worked in the original build recipe.
> 
> Google tells me that the FREETYPE6.DLL error is a common Windows problem
(I've never seen it before). I can easily download a prebuilt binary and 
drop it in, but I am curious how this got broken.
> 
> IESHIMS.DLL is apparently a part of Internet Explorer 8. That needs to 
be on the PATH to discover this DLL. So, how did Shoes get a dependency on
IE8 all of a sudden? :(
> 
> 
> 3. A user on irc (phinze) fixed some of the problems with compiling and 
linking the C libs in sandbox/shoes/req but he didn't commit those changes
anywhere that I can find. Ultimately this is a problem that needs repair 
before we can "ship" so I'm hopeful he pops back into irc and shares his 
solution.


I examined the install directory for the last Windows release of Shoes. 

It contains a copy of LIBFONTCONFIG-1.DLL, FREETYPE6.DLL and 
LIBPNG14-14.DLL in its directory. However, I cannot find any logic in the 
various Shoes forks telling me how those DLLs got copied into there. :(

cr

Re: [shoes] \path\to\exe is not a valid win32 application

From:
Eric Watson
Date:
2011-09-28 @ 17:21
Chuck, are you looking at the 3.0 release version of the Rakefile?
Maybe something has been removed by mistake.

OS X does depend on libfreetype as well. We pick up the system's
version and bundle that. Its a transitive dependency, though, so you
will see it in Shoes.app/Contents/MacOS/ (at least in HEAD), but not
in the Rakefile.

I ran into architecture issues with OS X too, and partly it was
because the -arch flags were hard coded in multiple places.
Specifically, the command for compiling shoes.dylib was in a different
place than the command for dependencies, and with a slightly different
list of flags. I'd say it's likely to be that way in the windows build
as well. I did fix that for OS X, by the way ;)

You are so close!

Eric

On Sep 28, 2011, at 11:38 AM, Chuck Remes <cremes.devlist@mac.com> wrote:

>
> On Sep 28, 2011, at 11:21 AM, Chuck Remes wrote:
>
>> I have Shoes building. However, upon launch I get a dialog box from the
OS saying that the exe is not a valid win32 application.
>>
>> I googled around for this problem and got the hint that I should verify
that all library dependencies are being satisfied. So, I ran Dependency 
Walker on the Shoes.exe and discovered several problems.
>>
>> 1. Most of the dependent libraries are compiled for x64. The Shoes exe 
and the DLLs that were downloaded for it are all x86.
>>
>> The OS is Win7 x64.
>>
>> I don't know how to solve this. I thought the recipes would 
automatically compile for the correct target architecture. ???
>>
>>
>> 2. There are unsatisfied dependencies due to 4 missing DLLs.
>>
>> IESHIMS.DLL
>>
>> LIBFONTCONFIG-1.DLL
>>
>> FREETYPE6.DLL
>>
>> LIBPNG14-14.DLL
>>
>> When I examine the Shoes recipe that *used to work with MRI 1.9.1* I 
don't see any references to these DLLs. I do see that the build for the 
Mac OSX platform has libfontconfig and libpng as dependencies, but the 
Windows recipe never had it. I can download these prebuilt DLLs and drop 
them in to the directory containing the EXE, but I am curious to know how 
this worked in the original build recipe.
>>
>> Google tells me that the FREETYPE6.DLL error is a common Windows 
problem (I've never seen it before). I can easily download a prebuilt 
binary and drop it in, but I am curious how this got broken.
>>
>> IESHIMS.DLL is apparently a part of Internet Explorer 8. That needs to 
be on the PATH to discover this DLL. So, how did Shoes get a dependency on
IE8 all of a sudden? :(
>>
>>
>> 3. A user on irc (phinze) fixed some of the problems with compiling and
linking the C libs in sandbox/shoes/req but he didn't commit those changes
anywhere that I can find. Ultimately this is a problem that needs repair 
before we can "ship" so I'm hopeful he pops back into irc and shares his 
solution.
>
>
> I examined the install directory for the last Windows release of Shoes.
>
> It contains a copy of LIBFONTCONFIG-1.DLL, FREETYPE6.DLL and 
LIBPNG14-14.DLL in its directory. However, I cannot find any logic in the 
various Shoes forks telling me how those DLLs got copied into there. :(
>
> cr
>