Re: Building on win32

Daniel Sahlberg <[email protected]>
Newsgroups gmane.comp.apache.apr.devel
Message-ID <CAMHy98NuWqEuwnwRvWe8TPs-T+6dwgGqFpzzZG3LMQFLB2=jBA@mail.gmail.com>
Den mån 10 juni 2024 kl 10:55 skrev Jun Omae <[email protected]>:

> Hi,
>
> On Mon, Jun 10, 2024 at 5:32 AM Daniel Sahlberg
> <[email protected]> wrote:
> > [[[
> >         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!
>
> _CrtSetReportFile and _CrtSetReportMode routines are available only
> for debug versions. So that /MDd flag should be passed but not in
> test/Makefile.win. See attached patch.
>

Thanks Jun, unfortunately the patch didn't make any difference. In the end
it turned out that I needed to specify  ARCH="x64 Release" on the command
line. I found this by reading the comments in Makefile.win.


>
> Of course, you can use cmake to build apr on Windows. I use cmake to
> build apr, apr-util and httpd as dependencies of subversion on
> Windows.
>

I also tried this, since my longterm goal is to build Subversion, where
there is some work going on to add a cmake based build system.

It seems there are at least four different options, with the documentation
in various stage of completeness:
* .DSW files
* Makefile.win
* CMake
* vcpkg

I guess what I'm trying to say is that the bar to get started with APR is
relatively high. Please don't take this as complaints - I'd be happy to
help in any way I can to improve the documentation.

Kind regards,
Daniel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.