Boost logo

Boost Users :

From: atoral_at_[hidden]
Date: 2005-02-12 09:57:52


I've executed mingw in verbose mode for the first input file from the boost
regex library that fails to compile. This is the output:
 
 
xxxxx_at_xxxxx:~/boost/boost_1_31_0/libs/regex/build$
i586-mingw32msvc-g++ --verbose -o generic/boost_regex/c_regex_traits.o
-c -O2 -I../../../ ../src/c_regex_traits.cpp
Reading specs from /usr/lib/gcc/i586-mingw32msvc/3.4.2/specs
Configured
with: /home/ron/devel/debian/mingw32/mingw32-3.4.2.20040916.1/build_dir/src/gcc-3.4.2-20040916-1/configure
-v --prefix=/usr --target=i586-mingw32msvc --enable-languages=c,c++
--enable-threads --disable-multilib --enable-version-specific-runtime-libs
Thread model: win32
gcc version 3.4.2 (mingw-special)
 /usr/libexec/gcc/i586-mingw32msvc/3.4.2/cc1plus -quiet -v
-I../../../ ../src/c_regex_traits.cpp -quiet -dumpbase c_regex_traits.cpp
-mtune=pentium -auxbase-strip generic/boost_regex/c_regex_traits.o -O2
-version -o /tmp/cccrEiOT.s
ignoring nonexistent directory
"/usr/lib/gcc/i586-mingw32msvc/3.4.2/../../../../i586-mingw32msvc/sys-include"
#include "..." search starts here:
#include <...> search starts here:
 ../../../
 /usr/lib/gcc/i586-mingw32msvc/3.4.2/include/c++
 /usr/lib/gcc/i586-mingw32msvc/3.4.2/include/c++/i586-mingw32msvc
 /usr/lib/gcc/i586-mingw32msvc/3.4.2/include/c++/backward
 /usr/lib/gcc/i586-mingw32msvc/3.4.2/include
 /usr/lib/gcc/i586-mingw32msvc/3.4.2/../../../../i586-mingw32msvc/include
End of search list.
GNU C++ version 3.4.2 (mingw-special) (i586-mingw32msvc)
        compiled by GNU C version 3.3.5 (Debian 1:3.3.5-2).
GGC heuristics: --param ggc-min-expand=47 --param
ggc-min-heapsize=32010
../src/c_regex_traits.cpp: In static member function `static size_t
boost::c_regex_traits<boost::regex_wchar_type>::strnarrow(char*, size_t,
const boost::regex_wchar_type*)':
../src/c_regex_traits.cpp:1052: error: `wcstombs' is not a member of `std'
 
 
 
 
Just in case it helps i attach as well the verbose output when using c++
(succesful compilation):
 
 
guest_at_asterix:~/boost/boost_1_31_0/libs/regex/build$ g++ --verbose -o
generic/boost_regex/c_regex_traits.o -c-O2
-I../../../ ../src/c_regex_traits.cpp
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang
--prefix=/usr--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.3
--enable-shared--with-system-zlib --enable-nls --without-included-gettext
--enable-__cxa_atexit --enable-clocale=gnu --enable-debug
--enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.5 (Debian 1:3.3.5-5)
 /usr/lib/gcc-lib/i486-linux/3.3.5/cc1plus -quiet -v -I../../../ -D__GNUC__=3
-D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=5
-D_GNU_SOURCE ../src/c_regex_traits.cpp -D__GNUG__=3 -quiet
-dumpbase c_regex_traits.cpp -auxbase-strip
generic/boost_regex/c_regex_traits.o -O2 -version -o /tmp/ccSZw3f5.s
GNU C++ version 3.3.5 (Debian 1:3.3.5-5) (i486-linux)
        compiled by GNU C version 3.3.5 (Debian 1:3.3.5-5).
GGC heuristics: --param ggc-min-expand=47 --param
ggc-min-heapsize=32010
ignoring nonexistent directory "/usr/i486-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 ../../..
 /usr/include/c++/3.3
 /usr/include/c++/3.3/i486-linux
 /usr/include/c++/3.3/backward
 /usr/local/include
 /usr/lib/gcc-lib/i486-linux/3.3.5/include
 /usr/include
End of search list.
 as -V -Qy -o generic/boost_regex/c_regex_traits.o /tmp/ccSZw3f5.s
GNU assembler version 2.15 (i386-linux) using BFD version 2.15
 
 
 
Thanks for the help, i do not see from the above if anything about compiler
configuration is wrong.
 
---- Missatge original ----
>
> The Boost config system isn't detecting that your std C++ lib is libstdc++3,
> it uses:
>
> #include <utility>
>
> #if whatever...
> #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
> // must be libstdc++3...
> // etc
> for this purpose.
>
> Now I know that "real" mingw32 on win32, does define one or other of
these
> macros (depending upon it's version), so I'm perplexed why it wouldn't be
> picking this up when cross-compiling under Linux. Maybe by running the
> compiler in "verbose" mode you can figure out what's happening, is there
any
> chance that your compiler's include paths are setup incorrectly?
>
> Perplexed yours,
> John Maddock.
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net