Hi Daniel,


I would recommend you use vcpkg [1] for a more productive Windows development   
life:

> git clone https://github.com/Microsoft/vcpkg.git

> cd vcpkg

> .\bootstrap-vcpkg.bat

>   .\vcpkg install apr



Then, to hook up user-wide Visual Studio integration, run (note: requires admin 
on first use)

> .\vcpkg integrate install



[1] https://learn.microsoft.com/en-us/vcpkg/get_started/overview







From: Daniel Sahlberg <daniel.l.sahlb...@gmail.com 
<mailto:daniel.l.sahlb...@gmail.com> >
Sent: Monday, June 10, 2024 6:31 AM
To: APR Developer List <dev@apr.apache.org <mailto:dev@apr.apache.org> >
Subject: Building on win32



Hi,



I'm trying to wrap my head around building APR on Windows.



The website [1] contains instructions on running for running msdev on 
aprutil.dsw or to open aprutil.dsw in Visual Studio. However I don't have msdev 
on my installation (Visual Studio Community 2022) and the support for .dsw 
files was deprecated in Visual Studio 2022.



The README file suggests to run nmake but that failed out of the box with an 
error in apr_arch_misc.h:



[[[

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): error C2143: 
syntax error: missing ')' before '*'

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): error C2143: 
syntax error: missing '{' before '*'

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): error C2059: 
syntax error: ')'

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(510): error C2061: 
syntax error: identifier 'apr_winapi_pfn_if_indextoname'

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(510): error C2059: 
syntax error: ';'

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): error C2513: ' 
': no variable declared before '='

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(510): error C2065: 
'apr_winapi_pfn_if_indextoname': undeclared identifier

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): warning C4047: 
'=': 'int' differs in levels of indirection from 'int *(__cdecl 
*)(NET_IFINDEX,PCHAR)'

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(510): error C2146: 
syntax error: missing ';' before identifier 'apr_load_dll_func'

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): error C2100: 
illegal indirection

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): error C2064: 
term does not evaluate to a function taking 0 arguments

C:\Devel\apr_1.7.4\apr\include\arch\win32\apr_arch_misc.h(507): warning C4033: 
'apr_winapi_if_indextoname' must return a value

]]]



Editing include\apr.hw and changing _WIN32_WINNT to 0x0601 made the build go a 
lot further but it ended with:



[[[

            link.exe /nologo /debug /subsystem:console /incremental:no 
/out:"LibR\testall.exe" LibR\testutil.obj LibR\testtime.obj LibR\teststr.obj 
LibR\testvsn.obj LibR\testipsub.obj LibR\testmmap.obj LibR\testud.obj 
LibR\testtable.obj LibR\testsleep.obj LibR\testpools.obj LibR\testfmt.obj 
LibR\testfile.obj LibR\testdir.obj LibR\testfileinfo.obj LibR\testrand.obj 
LibR\testdso.obj LibR\testoc.obj LibR\testdup.obj LibR\testsockets.obj 
LibR\testproc.obj LibR\testpoll.obj LibR\testlock.obj LibR\testsockopt.obj 
LibR\testpipe.obj LibR\testthread.obj LibR\testhash.obj LibR\testargs.obj 
LibR\testnames.obj LibR\testuser.obj LibR\testpath.obj LibR\testenv.obj 
LibR\testprocmutex.obj LibR\testfnmatch.obj LibR\testatomic.obj 
LibR\testflock.obj LibR\testshm.obj LibR\testsock.obj LibR\testglobalmutex.obj 
LibR\teststrnatcmp.obj LibR\testfilecopy.obj LibR\testtemp.obj LibR\testlfs.obj 
LibR\testcond.obj LibR\testescape.obj LibR\testskiplist.obj LibR\testencode.obj 
LibR\abts.obj ..\LibR\apr-1.lib kernel32.lib advapi32.lib ws2_32.lib 
wsock32.lib   ole32.lib shell32.lib rpcrt4.lib

testutil.obj : error LNK2019: unresolved external symbol 
__imp__CrtSetReportFile referenced in function initialize

testutil.obj : error LNK2019: unresolved external symbol 
__imp__CrtSetReportMode referenced in function initialize

LibR\testall.exe : fatal error LNK1120: 2 unresolved externals

NMAKE : fatal error U1077: 'link.exe /nologo /debug /subsystem:console 
/incremental:no /out:"LibR\testall.exe" LibR\testutil.obj LibR\testtime.obj 
LibR\teststr.obj LibR\testvsn.obj LibR\testipsub.obj LibR\testmmap.obj 
LibR\testud.obj LibR\testtable.obj LibR\testsleep.obj LibR\testpools.obj 
LibR\testfmt.obj LibR\testfile.obj LibR\testdir.obj LibR\testfileinfo.obj 
LibR\testrand.obj LibR\testdso.obj LibR\testoc.obj LibR\testdup.obj 
LibR\testsockets.obj LibR\testproc.obj LibR\testpoll.obj LibR\testlock.obj 
LibR\testsockopt.obj LibR\testpipe.obj LibR\testthread.obj LibR\testhash.obj 
LibR\testargs.obj LibR\testnames.obj LibR\testuser.obj LibR\testpath.obj 
LibR\testenv.obj LibR\testprocmutex.obj LibR\testfnmatch.obj 
LibR\testatomic.obj LibR\testflock.obj LibR\testshm.obj LibR\testsock.obj 
LibR\testglobalmutex.obj LibR\teststrnatcmp.obj LibR\testfilecopy.obj 
LibR\testtemp.obj LibR\testlfs.obj LibR\testcond.obj LibR\testescape.obj 
LibR\testskiplist.obj LibR\testencode.obj LibR\abts.obj ..\LibR\apr-1.lib 
kernel32.lib advapi32.lib ws2_32.lib wsock32.lib   ole32.lib shell32.lib 
rpcrt4.lib' : return code '0x460'

Stop.

]]]



I'm surely doing something wrong here... appreciating any advice and/or 
pointers!



Kind regards,

Daniel Sahlberg





[1] https://apr.apache.org/compiling_win32.html

[2]  
https://learn.microsoft.com/en-us/cpp/porting/upgrading-projects-from-earlier-versions-of-visual-cpp?view=msvc-170





--
This email has been checked for viruses by Avast antivirus software.
www.avast.com

Reply via email to