logo
Apache Lounge
Webmasters

 


About

Forum Index Downloads Search Register Log in  RSS Apache Lounge
 



Keep Server Online

If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.

or

Bitcoin

A donation makes a contribution towards the costs, the time and effort that's going in this site and building.

Thank You! Steffen

Apache Lounge is not sponsored.

Your donations will help to keep this site alive and well, and continuing building binaries.



Build with VC: runtime error starting httpd 2.2.4 + ssl

 
Post new topic   Reply to topic    Apache Forum Index -> Apache Building & Member Downloads



View previous topic :: View next topic  
Author Message
bobhumphrey22



Joined: 10 Jan 2007
Posts: 2

PostPosted: Wed 10 Jan '07 19:53    Post subject: Build with VC: runtime error starting httpd 2.2.4 + ssl Reply with quote

on Win 2003 Std R2 32 Bit with VC++ 2005 Express and PSDK-x86 installed (plus Perl, Awk, Nasm, etc)

I compiled openssl 0.9.8d according to instruction. Compiled flawlessly.
Same with the zlib. Both went into httpd srclib dirs.

compiling _apacher worked flawlessly

did the nmake /f Makefile.win installr INSTDIR="m:\www\httpd"
seemed to install fine.

In the bin dir of the install, I tried executing httpd from the command line, and I get the msvrc80.dll not found. So I found it on the machine (in the C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd directory) and I copied it to the m:\www\httpd\bin directory as many past posts have suggested. Now, when I try and run httpd from that directory, a dialog pops up and says

"Runtime Error!

Program: M:\www\httpd\bin\httpd.exe

R6034
An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information."

I'm sorry if I missed something I was supposed to do. I even tried installing the Visual C++ Redistributable Package, but of course it didn't fix this issue. Can someone point me to the step I missed please?

Note: The machine does have .Net 2.0, and all service packs, patches, etc..

thanks in advance
bh
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 610
Location: Milford, MA, USA

PostPosted: Thu 11 Jan '07 3:16    Post subject: Reply with quote

Did you remember to either copy all the .manifest files to the \bin directory, or else use the MT.exe utility to embed these manifests into the .exe, .dll, and .so files?

Another possibility is the version of the Visual C++ runtime libraries if you have installed Visual C++ 2005 Express Edition Service Pack 1?

The original Visual C++ 2005 Express Edition installed runtime libraries version 8.0.50727.42

Users can download a package with this version from Microsoft at Microsoft Visual C++ 2005 Redistributable Package (x86).
This provides the runtime libraries for any system that needs to run the app.

When you install Visual C++ 2005 Express Edition SP1, the libraries on the VC machine are updated to version 8.0.50727.762
You should have a C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700
directory if you have installed SP1. Unfortunately, there is no Microsoft download for this version.

Hope this helps. Please let us know if you still have problems.

-tom-

p.s. Steffen - I see that you have a vcredist_x86-sp1.exe available at Apache Lounge which appears to install the 8.0.50727.762 libraries.
Can you tell us where you got this (or how you built it)?

thx,
-t-
Back to top
Jorge



Joined: 12 Mar 2006
Posts: 376
Location: Belgium

PostPosted: Thu 11 Jan '07 17:23    Post subject: Reply with quote

My vs install DVD installed the update files in your VS folder. Try looking there
Back to top
Steffen
Moderator


Joined: 15 Oct 2005
Posts: 2581
Location: Hilversum, NL, EU

PostPosted: Thu 11 Jan '07 19:57    Post subject: Reply with quote

Indeed as Jorge says, vcredist_x86.exe it installed by the update. I renamed it to vcredist_x86-sp1.exe , just to indentify it.



Steffen
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 610
Location: Milford, MA, USA

PostPosted: Fri 12 Jan '07 2:53    Post subject: Reply with quote

Thanks Jorge & Steffen. You both must have either the Standard, Professional, or Team edition of Visual Studio.

The free Express edition does not provide vcredist_x86.exe.
This was not a problem with the original version because Microsoft provided a public download for vcredist_x86.exe.

With SP1, Express Edition users have no vcredist_x86.exe and no place to get it.
An unfortunate situation for those who build Apache with the Express Edition.

If you are interested, several of us have been whining about this problem in the MSDN Visual C++ forums.

-tom-
Back to top
Steffen
Moderator


Joined: 15 Oct 2005
Posts: 2581
Location: Hilversum, NL, EU

PostPosted: Fri 12 Jan '07 12:24    Post subject: Reply with quote

Indeed, I am using the Standard version.

Steffen
Back to top
bobhumphrey22



Joined: 10 Jan 2007
Posts: 2

PostPosted: Tue 16 Jan '07 16:38    Post subject: Reply with quote

Thanks tdonovan -- .manifest files was the answer. I found an alternate post from you with a FOR loop to integrate the manifest files with the exe, dll and so files. Interestingly enough, nowhere in the apache official "compile for windows documentation" mentions them. Are those instructions only needed when using the Express Edition to compile? Or only needed with 2005 compilers? Obviously, I'm not sure exactly what the manifest files are from or what they do -- I don't remember having to do that step in the past with older branches/older compilers...
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 610
Location: Milford, MA, USA

PostPosted: Tue 16 Jan '07 18:33    Post subject: Reply with quote

Bob,

I'm glad to hear you got Apache running.

Yes, manifest files are new since Visual C++ 6.0. The apache docs presume VC6.0, and therefore make no mention of manifest files.
Manifest files are required by C/C++ programs built with all editions of vs2005, not just the Express edition.

Manifest files can be provided as seperate .manifest files or they can be embedded into executables and libraries.
Their purpose is to list the specific versions of runtime libraries needed.

Manifest files are automatically embedded into .exe, .dll, and .so files when Apache is built in the VS2005 IDE.
Unfortunately, they are not automatically embedded in a command-line build, hence the MT commands to insert them into every binary created.

-tom-
Back to top
acid.-.burn



Joined: 15 Jan 2007
Posts: 17

PostPosted: Thu 01 Mar '07 16:29    Post subject: Reply with quote

copy all the .manifest files to the \bin directory, or else use the MT.exe utility to embed these manifests into the .exe, .dll and .so files how Question
& i thought this did it for you ?
Arrow
Code:
FOR /R %a in (*.exe) DO @if exist %a.manifest mt -nologo -manifest %a.manifest -outputresource:%a;1
FOR /R %a in (*.dll) DO @if exist %a.manifest mt -nologo -manifest %a.manifest -outputresource:%a;2
FOR /R %a in (*.so)  DO @if exist %a.manifest mt -nologo -manifest %a.manifest -outputresource:%a;2
Back to top


Post new topic   Reply to topic    Apache Forum Index -> Apache Building & Member Downloads
Page 1 of 1