[Box Backup] Compile Boxi from tarball or trunk?
Chris Wilson
boxbackup@boxbackup.org
Wed, 1 Apr 2009 16:40:36 +0200 (CEST)
Hi Achim,
On Wed, 1 Apr 2009, Achim wrote:
> I like the looks of Boxi (as a native Win32 application) and have been
> able to find the following two, rather old (2006!) pre-compiled
> binaries:
>
> <http://gcc.flexdns.net/boxi-win32-bin-060925.zip>
> <http://gcc.flexdns.net/boxi-win32-bin-061010.zip>
That's because it's difficult and annoying to build boxi on windows, as I
only have a windows virtual machine that's on my laptop and it's very slow
and short on disk space, so I very rarely do it. The last time I did it
successfully was in 2006, as you can see.
I have not yet been able to successfully cross-compile, although this is a
more promising route as it should be much faster.
> Unfortunately, none of the recent releases (R626, 0.1.0) compile under
> Cygwin native (via MinGW) at the moment: see the (messy) details below.
I'm not particularly interested in fixing the old versions, but will try
to fix trunk.
> Basically, I would be very grateful if somebody could point me to how to
> compile any version of Boxi from source...
As above, it's very inconvenient and slow for me. If someone could give me
access to a decent Windows machine for use for working on this then that
would help.
> main.cc: In member function `virtual void BoxiApp::OnAssertFailure(const
> wxChar*, int, const wxChar*
> , const wxChar*, const wxChar*)':
> main.cc:342: error: `OnAssertFailure' is not a member of `wxApp'
> make: *** [main.o] Error 1
>
> (even though __WXDEBUG__ should be defined, as we compiled for debugging)
It's not obvious that this is a Boxi error. Why is OnAssertFailure
missing? If you add a #error to the relevant part of the wxWidgets
headers, does it error out to show that OnAssertFailure is actually being
defined?
> FileTree.cc:178: error: `wxFSVolumeBase' has not been declared
> FileTree.cc:178: error: `GetVolumes' undeclared (first use this function)
> FileTree.cc:178: error: (Each undeclared identifier is reported only once
> for each function it appears in.)
> FileTree.cc:225: error: `wxFSVolumeBase' undeclared (first use this
> function)
> FileTree.cc:225: error: expected `;' before "vol"
> FileTree.cc:226: error: `vol' undeclared (first use this function)
May have been removed in more recent versions of wxWidgets.
> In addition, there is trouble with MSVCRT as described in
> <http://www.mail-archive.com/fedora-mingw@lists.fedoraproject.org/msg00742.html>
>
> Must include Box.h before sys/types.h is based on msvcrt macro comparison
> which will always fail, because default value is 600 (and not 601 as
> required)
> <http://www.boxbackup.org/trac/changeset/2257>
The default is 600 and that is precisely the problem. We cannot compile if
sys/types.h was included while __MSVCRT_VERSION is set to 600. Therefore
it must be set to 601 or higher before importing sys/types.h, preferably
by #including Box.h before sys/types.h, exactly as the error message says.
If you check the output of the failed make, you will see in which file
sys/types.h was included (perhaps indirectly) before Box.h, and you can
add a #include sys/types.h in there.
Cheers, Chris.
--
_ ___ __ _
/ __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer |
\ _/_/_/_//_/___/ | We are GNU-free your mind-and your software |