Problem with compiling DC++ using MinGW
Hello, I am currently trying to compile DC++ again. My old post (https:/
First off, tools and libraries used:
SCons by Steven Knight et al.:
engine: v1.2.0.
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
Bazaar (bzr) 1.14.1
Python interpreter: C:\Program Files (x86)\Bazaar\
Python standard library: C:\Program Files (x86)\Bazaar\
bzrlib: C:\Program Files (x86)\Bazaar\
Bazaar configuration: C:\Users\
Bazaar log file: C:\Users\
Copyright 2005, 2006, 2007, 2008, 2009 Canonical Ltd.
http://
bzr comes with ABSOLUTELY NO WARRANTY. bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.
g++ (GCC) 4.3.0 20080305 (alpha-testing) mingw-20080502
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
As poy suggested I got more recent code using "bzr branch lp:dcplusplus" and I am no longer using MSVC for this, as Pietry recommended. I followed Pietry's tutorial:
http://
I got cygwin and made STLport-5.1.3 in the specified manner. Compilation fails due to a misconfigured MinGW installation I suspect:
B:\Downloads\
scons: Reading SConscript files ...
hhc.exe not found, skipping chm build
scons: done reading SConscript files.
scons: Building targets ...
Compiling build\release-
In file included from b:\mingw\
winsock2.h:22,
b:\mingw\
: stdarg.h: No such file or directory
In file included from b:\mingw\
winnt.h:37,
windef.h:253,
windows.h:48,
winsock2.h:22,
b:\mingw\
stddef.h: No such file or directory
In file included from boost/boost/
b:\mingw\
error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://
scons: *** [build\
scons: building terminated because of errors.
B:\Downloads\
I thought I had installed everything necessary but I haven't figured it out yet. The problem is "error: stdarg.h: No such file or directory". I checked my MinGW installation and I could only find B:\MinGW\
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- DC++ Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- helmorn
- Solved:
- Last query:
- Last reply:
Revision history for this message
|
#1 |
Ah, I didn't know which package I had originally downloaded so I copied the stuff from gcc-4.3.
B:\Downloads\
scons: Reading SConscript files ...
hhc.exe not found, skipping chm build
scons: done reading SConscript files.
scons: Building targets ...
Compiling build\release-
In file included from win32\stdafx.h:48:
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Generating help\cshelp.h
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\/stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
In file included from win32\/
b:\mingw\
global scope:
b:\mingw\
instantiation of '__gnu_
b:\mingw\
ntiated from 'std::vector<
./dcpp/
b:\mingw\
: error: '__gnu_
./dcpp/
win32\Directory
:handleXMouseUp
win32\Directory
dled in switch
win32\Directory
led in switch
win32\Directory
dled in switch
win32\Directory
ndled in switch
b:\mingw\
member function 'void __gnu_cxx:
ith _Tp = dcpp::WindowInfo]':
b:\mingw\
ntiated from 'std::vector<
./dcpp/
b:\mingw\
: error: using invalid field '__gnu_
b:\mingw\
: error: using invalid field '__gnu_
b:\mingw\
: error: using invalid field '__gnu_
b:\mingw\
ntiated from 'std::vector<
./dcpp/
b:\mingw\
: error: using invalid field '__gnu_
b:\mingw\
member function 'void __gnu_cxx:
s(const _Tp&) [with _Tp = dcpp::WindowInfo]':
b:\mingw\
: instantiated from 'void __gnu_cxx:
() [with _Tp = dcpp::WindowInfo]'
b:\mingw\
ntiated from 'std::vector<
./dcpp/
b:\mingw\
: error: using invalid field '__gnu_
scons: *** [build\
scons: building terminated because of errors.
B:\Downloads\
Revision history for this message
|
#2 |
Im not sure, but it might be a problem with gcc 4.3.0, i use mingw 4.2. Im also not sure if latest bzr will be using mingw, since arne said he wants to move to gcc 4.4 ( tdm )
Your errors are very strange, something is definitely missing.
You also need gettext to complete compiling ( it wasnt necesary when i made the tutorial )
Try again with gcc 4.2. dwarf2
Revision history for this message
|
#3 |
It got further with 4.2, I think:
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
win32\Directory
:handleXMouseUp
win32\Directory
dled in switch
win32\Directory
led in switch
win32\Directory
dled in switch
win32\Directory
ndled in switch
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
In file included from win32\HubFrame.
boost/boost/
boost/boost/
a::lambda_
boost/boost/
t::lambda:
:tuples:
boost/boost/
t::lambda:
mbda_functor<
pe, boost::
, boost::
boost::
boost/boost/
t::lambda:
bda_functor<
e, boost::
boost:
oost::tuples:
boost/boost/
'boost:
::equal_action>, boost::
a::placeholder<1> >, const char, boost::
ype, boost::
e, boost::
, boost::
boost/boost/
'boost:
bda::equal_action>, boost::
mbda::placehold
l_type, boost::
type, boost::
pe> >::sig<
boost/boost/
ambda::
al_action<
da_functor<
, boost::
boost::
ost::tuples:
win32\AspectCha
boost/boost/
red on function return type
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
In file included from win32\HubFrame.
boost/boost/
boost/boost/
a::lambda_
boost/boost/
t::lambda:
:tuples:
boost/boost/
t::lambda:
mbda_functor<
pe, boost::
, boost::
boost::
boost/boost/
t::lambda:
bda_functor<
e, boost::
boost:
oost::tuples:
boost/boost/
'boost:
::equal_action>, boost::
a::placeholder<1> >, const char, boost::
ype, boost::
e, boost::
, boost::
boost/boost/
'boost:
bda::equal_action>, boost::
mbda::placehold
l_type, boost::
type, boost::
pe> >::sig<
boost/boost/
ambda::
al_action<
da_functor<
, boost::
boost::
ost::tuples:
win32\AspectCha
boost/boost/
red on function return type
dwt\include/
dwt::AspectScro
oxBase]':
win32\HubFrame.
dwt\include/
le 'ret'
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
In file included from win32\MainWindo
win32\UPnP.h:27:21: error: natupnp.h: No such file or directory
In file included from win32\stdafx.h:48,
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
In file included from win32\MainWindo
win32\UPnP.h: At global scope:
win32\UPnP.h:44: error: ISO C++ forbids declaration of 'IUPnPNAT' with no type
win32\UPnP.h:44: error: expected ';' before '*' token
In file included from win32\HubFrame.
boost/boost/
a::lambda_
boost/boost/
t::lambda:
:tuples:
boost/boost/
t::lambda:
mbda_functor<
pe, boost::
, boost::
boost::
boost/boost/
t::lambda:
bda_functor<
e, boost::
boost:
oost::tuples:
boost/boost/
'boost:
::equal_action>, boost::
a::placeholder<1> >, const char, boost::
ype, boost::
e, boost::
, boost::
boost/boost/
'boost:
bda::equal_action>, boost::
mbda::placehold
l_type, boost::
type, boost::
pe> >::sig<
boost/boost/
ambda::
al_action<
da_functor<
, boost::
boost::
ost::tuples:
win32\AspectCha
boost/boost/
red on function return type
scons: *** [build\
scons: building terminated because of errors.
Great, as it turns out this wasn't even 4.2, it's a misnamed 4.3.3 dwarf 2 (?):
B:\Downloads\
g++ (GCC) 4.3.3-dw2-tdm-1
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Random Google hit from http://
Couldn't be arsed to compile 4.2 from source from the SF files...
I have problems finding a version marked as "dwarf 2" - which actual version is that? Do you happen to have a link for that? There appear to be at least three (or two?) named versions of 4.2.1 and I have no idea how they differ:
http://
Revision history for this message
|
#4 |
I can't even find instructions on how to build that source. README refers to INSTALL directory, INSTALL directory contains a placeholder and refers to index.html, HTML documentation says this is only an FAQ and doesn't contain building instructions. The MinGW site assumes you use a binary dist. mingw-make doesn't find makefiles in the gcc src root. Hm. I assume it's probably much easier to find the right binary release.
Revision history for this message
|
#5 |
I found the following binaries:
http://
http://
Unluckily the binaries have -dw2- in their name and don't work with scons so I renamed a few binaries to see what would happen:
B:\Downloads\
g++ (GCC) 4.2.1-dw2 (mingw32-2)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
B:\Downloads\
scons: Reading SConscript files ...
hhc.exe not found, skipping chm build
scons: done reading SConscript files.
scons: Building targets ...
Compiling build\release-
In file included from win32\stdafx.h:48:
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
Compiling build\release-
g++: CreateProcess: No such file or directory
scons: *** [build\
scons: building terminated because of errors.
B:\Downloads\
dwt\include/
tItemRect(
dwt\include/
ill break strict-aliasing rules
"g++: CreateProcess: No such file or directory" <- I can only guess how this happened. Currently using the following combination of packages:
gcc-g++
gcc-core-
mingwrt-
mingw32-
w32api-
Revision history for this message
|
#6 |
http://
After that it crashed though:
B:\Downloads\
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
Linking build\release-
Warning: .drectve `-defaultlib:
Warning: .drectve `-defaultlib:
Updating translation help\po\ar.po from help\po\
scons: *** [help\po\ar.po] Error -1073741515
scons: building terminated because of errors.
Crash due to:
msgmerge.exe: Missing intl.dll
(GPLEd stopped working blah blah)
Thanks a lot for your help anyways! The binary even works this time! This is SJSJ unwinding btw, not Dwarf 2. Now, could you please tell me how to get rid of the 63 megabytes of debug symbols or whatever it contains?
read the "Compile.txt" file, it contains all the problems you mentioned and would have saved you a lot of trouble... use the "strip" command to remove the debug symbols, but there's no reason you should have to do that unless you plan on distributing your binary.
Revision history for this message
|
#8 |
Yeah I started out with "Compile.txt" weeks ago, but none of it really worked. I managed to compile one of the previous DC++ versions with scons and MSVC but the binary would crash for unknown reasons, haha. The key to this was the TDM remark really, I had never heard of this release before. Apparently 4.2 works for him, 4.3 doesn't, 4.4 works again? Oh and the STLPort used isn't mentioned in Compile.txt either, newer versions break something somebody said on Pietry's blog. I strongly suggest that the exact configuration (version numbers for EVERY tool and EVERY library involved) be posted in future Compile.txts.
Thanks!
Revision history for this message
|
#9 |
Well, why are you looking for strange mingw versions ? The mingw sourceforge page provides the exact binaries you need, here is a link for you :
http://
with gcc 4.2 set jump/long jump which is fully compatible with dwarf2 but potentially slower ( should not be a problem )
The new sf.net interface is quite difficult i wasnt able to find dwarf2 download page =)