Author |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Wed 10 Apr '13 15:38 Post subject: httpd2.4.4 compilation issue with vs2010 |
|
|
Hi,
I am having an issue compiling httpd2.4.4 with vs 2010.
i have unzipped httpd2.4.4 project and copied the appropriate apr,apr-iconv and apr-util in the target path
once done that i have opened the command prompt and set the vc environment and sdk environment
then i had to convert the text formats since i'm compiling on windows using
lineends.pl
when i build the project it said the msdev is missing
so i imported apache.dsw on ide and after project conversion it is not building the error i'm facing is something like this
error LNK2019: unresolved external symbol _apr_pool_destroy@4 referenced in function _main
6>ab.obj : error LNK2019: unresolved external symbol _apr_pstrdup@8 referenced in function _main
6>ab.obj : error LNK2019: unresolved external symbol _apr_base64_encode@12 referenced in function _main
8>ClCompile:
8> Generating Code...
6>ab.obj : error LNK2019: unresolved external symbol _apr_base64_encode_len@4 referenced in function _main
only 11 projects are building remainin are failing
can someone please help me with this |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Wed 10 Apr '13 15:43 Post subject: |
|
|
You have to start with whith building with gui/ide:
..\srclib\apr\build\lineends.pl
..\srclib\apr\build\cvtdsp.pl -2005 |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Wed 10 Apr '13 15:56 Post subject: |
|
|
yes i have done that |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Wed 10 Apr '13 15:57 Post subject: |
|
|
i have also built apr and apr-util before conversion after conversion it is not working, it seemed to work on vs2006 after converting it to vs 2010 it is not building |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Wed 10 Apr '13 19:26 Post subject: |
|
|
I have this problem with 2010 converting the vc6 workspace (dsw) & project (dsp) files directly. I've always just coverted in vc9 (2008) first, the convert those in vc10. It's a pain but has worked for me.
I can supply the vc9 .sln & .vcproj files if you need them.
https://www.apachehaus.net/misc/httpd-2.4.4-vc9proj-r2.zip
This might not be your problem but it sure sounds like it.
Edit: Updated link.
Last edited by glsmith on Sat 22 Jun '13 12:53; edited 1 time in total |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Thu 11 Apr '13 5:47 Post subject: |
|
|
Hi ,
your solution seemed to work atleast it improved the successrate 107 projects got built few dependent projects failed anyway thanks i will look into what went wrong and keep the post alive |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Thu 11 Apr '13 6:38 Post subject: |
|
|
hi smith,
i cleaned the project and tried the conversion steps with lineends.pl and cvtdsp.pl successrate improved from 107 to 109 is there any other steps that i'm missing |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Thu 11 Apr '13 20:23 Post subject: |
|
|
What failed? |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Fri 12 Apr '13 6:47 Post subject: |
|
|
i'm getting these errors in between
------ Build started: Project: ab, Configuration: Release Win32 ------
7>------ Build started: Project: htcacheclean, Configuration: Release Win32 ------
8>------ Build started: Project: htdbm, Configuration: Release Win32 ------
6>Build started 4/11/2013 1:51:31 PM.
8>Build started 4/11/2013 1:51:31 PM.
7>Build started 4/11/2013 1:51:31 PM.
8>InitializeBuildStatus:
8> Touching ".\Release\htdbm.unsuccessfulbuild".
6>InitializeBuildStatus:
6> Touching ".\Release\ab.unsuccessfulbuild".
7>InitializeBuildStatus:
7> Creating ".\Release\htcacheclean.unsuccessfulbuild" because "AlwaysCreate" was specified.
6>ClCompile:
8>ClCompile:
7>ClCompile:
7> htcacheclean.c
8> htdbm.c
6> ab.c
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(E:\cpp-projects\4.5.0\apache 2.4.4\NAF\httpd-2.4.4\srclib\apr\.\Release\libapr.dll) does not match the Linker's OutputFile property value (E:\cpp-projects\4.5.0\apache 2.4.4\NAF\httpd-2.4.4\srclib\apr\Release\libapr-1.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(libapr) does not match the Linker's OutputFile property value (libapr-1). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1>Link:
1> Creating library Release\libapr-1.lib and object Release\libapr-1.exp
8> passwd_common.c
7>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(153,5): error MSB6003: The specified task executable "CL.exe" could not be run. The process cannot access the file 'E:\cpp-projects\4.5.0\apache 2.4.4\NAF\httpd-2.4.4\support\Release\cl.read.1.tlog' because it is being used by another process.
7>
7>Build FAILED. |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Fri 12 Apr '13 10:34 Post subject: |
|
|
Did you disabled parallel building ?
Otherwise the build will break, because the parallel builds used by default try to concurrently use some Visual Studio log files and err out (some of the independent projects are build in the same directories, e.g. support binaries).
In the Visual Studio Menus go to "Tools - Options". In the Popup choose "Projects and Solutions" and then "Build and Run". Set "maximum number of parallel project builds" to "1".
Steffen |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Fri 12 Apr '13 14:25 Post subject: |
|
|
yes actually that seemed to help a little bit more but still i'm getting issues .
her is the summary
os\win32\BaseAddr.ref : warning LNK4198: base key 'libhttpd.dll /opt:ref' not found - using default
LINK : fatal error LNK1181: cannot open input file 'pcred.lib'
Build FAILED.
i figured pcre libs need to be rebuilt by vs 2008 and then vs 2010
is that right |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Fri 12 Apr '13 19:40 Post subject: |
|
|
You're running a debug build, they can be iffy.
PCRE needs to be built with 2010 but you use CMake, and it will generate VC10 build files directly ... no need to use vc 2008 first. |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Tue 16 Apr '13 16:00 Post subject: |
|
|
Thanks i followed the above steps and it worked i now have a successful build |
|
Back to top |
|
sekhar484
Joined: 09 Nov 2011 Posts: 20
|
Posted: Wed 01 May '13 8:50 Post subject: Compiling Apache 2.4.4 Problem |
|
|
Hi balaji,
I need to build apache 2.4.4 in vs 2010.when i try to open solution file in vs 2010 after unzipping downloaded source code getting cannot load projects.Can u please provide me the complete steps for building in vs2010 which you succeeded.
Thanks & Regards,
sekhar. |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Wed 01 May '13 21:06 Post subject: |
|
|
As said above, you have to start with:
..\srclib\apr\build\lineends.pl
..\srclib\apr\build\cvtdsp.pl -2005 |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Thu 02 May '13 6:26 Post subject: |
|
|
hi,
You need to first ensure that apr and apr-util build on their own
After that u need to first convert ur dsp's to VS2008 because there from vs2008 there is no msdev it is devenv sothe project as to be first converted to 2008 no need to be built in 2008 , then port your project into vs 2010 and perform the build
first execute apr's lineends.pl
then you can build no need for cvtdsp.pl-2005
the dsp conversions are also available in this same blog. if you browse a little higher |
|
Back to top |
|
sekhar484
Joined: 09 Nov 2011 Posts: 20
|
Posted: Thu 02 May '13 8:36 Post subject: |
|
|
Thank you steffen and balaji for reply.
I actually followed below steps and i am getting error while building httpd-2.4.4 in vs2008. If any one faced this error and solved
can please tell what is the problem and am i missing any steps.
1. Downloaded httpd-2.4.4.tar.bz2 and extracted to httpd-2.4.4
2. I placed apr,aprutil,apriconv libraries and pcre binary in srclib folder
3. In Visual Studio 2008 Command Prompt:
"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
cd C:\path\to\httpd-2.4.4
perl srclib\apr\build\lineends.pl
perl srclib\apr\build\cvtdsp.pl -2005
4. After that i opened Apache.dsw in visual studio 2008 and when i build libhttpd project or installBin Project
i am getting errors like..
Admin note:
Build log removed, see forum rules, use pastebin.
...
...
6>LINK : fatal error LNK1181: cannot open input file 'Debug\buildmark.obj'
6>Build log was saved at "file://c:\Users\shekar.cheedella\Desktop\Apache 2.4.4 source\httpd-2.4.4-original\httpd-2.4.4\Release\BuildLog.htm"
6>libhttpd - 1 error(s), 8 warning(s)
========== Build: 5 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Thu 02 May '13 9:14 Post subject: |
|
|
hi,
u dont need to build in vs2008 u just need the converted dsp files once you have that load into vs2010 and reconvert after that only execute lineends.pl
and proceed with the build |
|
Back to top |
|
sekhar484
Joined: 09 Nov 2011 Posts: 20
|
Posted: Thu 02 May '13 10:26 Post subject: |
|
|
Hi balaji,
I have done the same steps in vs2010 also and getting the same error.and if i removed project->properties->linker->input dependencies "Debug\buildmark.obj"
"Release\buildmark.obj" am getting following error which you also got and posted above:
1>------ Build started: Project: libhttpd, Configuration: Debug Win32 ------
1>Compiling buildmark
1>buildmark.c
1>Linking...
1>os\win32\BaseAddr.ref : warning LNK4198: base key 'libhttpd.dll /opt:ref' not found - using default
1> Creating library .\Release/libhttpd.lib and object .\Release/libhttpd.exp
1>mpm_winnt.obj : error LNK2019: unresolved external symbol _ap_get_server_built@0 referenced in function _winnt_run
1>.\Release/libhttpd.dll : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\shekar.cheedella\Desktop\Apache 2.4.4 source\httpd-2.4.4\Release\BuildLog.htm"
1>libhttpd - 2 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 5 up-to-date, 0 skipped ==========
Can you please tell me what is the problem am i missing any thing. |
|
Back to top |
|
balaji@na
Joined: 10 Apr 2013 Posts: 19 Location: Chennai,India
|
Posted: Thu 02 May '13 10:37 Post subject: |
|
|
did you compile the 2008 converted src or did u directly convert it if so there will be conversion problems which result in similar errors
u r doing a IDE build once converted u can perform build from command line because ide build has linker issues
donot convert it directly do a step wise conversion
and omit the cvtdsp.pl-2005 |
|
Back to top |
|