Hi Farid:
[FZ]
It's ok. The rwstderr.cat catalog file is used for overriding standard
exceptions
what() messages (i.e. to have localized messages). On MinGW (as well as on
entire Windows) stdcxx doesn't using rwstderr.cat, but using rwstderr.dll
instead.
Actually if you're fine with english messages, you don't need
rwstderr.{cat|dll}
because of the english messages are hardcoded in library sources.
[SP]
Thanks to your previous assistance, I did succeed in using the GNUmakefile
under MinGW+MSYS, to build a stdcxx libnary libstd11s.a.
HOWEVER, I've been trying without success, to compile a minimal C++ program
under MinGW+MSYS, using the Apache C++ Standard Library (stdcxx), instead of
the Standard Library that is shipped with MinGW+MSYS.
* * *
* * *
The MinGW_MSYS environment, will compile, link and run the following test
program, using the Standard Library shipped with MinGW_MSYS:
// test_mingw.cpp ...
// standard library includes...
#include iostream
// ...standard library includes.
using std::cout;
int main (void)
{
cout Hello from test_mingw.cpp!\n;
return 0;
}
// ... test_mingw.cpp.
I use the following MSYS console shell commands to compile and link the
test_mingw.cpp program:
g++ -c -o test_mingw.o test_mingw.cpp # compiles ok.
g++ -o test_mingw test_mingw.o # links ok.
The test_mingw.exe program produce by ld, runs fine and displays the
following on the MSYS console:
Hello from test_mingw.cpp!.
* * *
* * *
HOWEVER, so far I have not found a way to compile a similar minimal C++
program under MinGW+MSYS, using the Apache C++ Standard Library (stdcxx),
instead of the Standard Library that is shipped with MinGW+MSYS.
The minimal C++ program I'm trying to compile is:
// test_stdcxx_1.cpp ...
// standard library includes...
#include iostream
// ...standard library includes.
using std::cout;
int main (void)
{
cout Hello from test_stdcxx_1.cpp!\n;
return 0;
}
// ... test_stdcxx_1.cpp.
I use the following MSYS console shell command, to compile the
test_stdcxx_1.cpp program:
g++.exe -I./include -nostdinc++ -nostdinc -nostdlib -c -o test_stdcxx_1.o
test_stdcxx_1.cpp
(Note the dot . between -I and /include. I have an stdcxx include
directory, with all its sub-directories, as a sub-directory of the directory
where the test_stdcxx_1.cpp source program is located, because I haven't yet
been able to figure out how to get g++.exe to respect a -I parameter
pointing to a more complex path description. The include directory, with
all its sub-directories, is a copy of what is shipped with stdcxx-4.2.2.)
g++.exe displays the following compile errors on the MSYS console:
In file included from ./include/rw/_traits.h:40,
from ./include/rw/_strref.h:48,
from ./include/string:43,
from ./include/loc/_locale.h:36,
from ./include/rw/_iosbase.h:36,
from ./include/streambuf:39,
from ./include/ostream:39,
from ./include/istream:38,
from ./include/iostream:33,
from test_stdcxx_1.cpp:4:
./include/rw/_mbstate.h:195:27: cwchar: No such file or directory
In file included from ./include/rw/_strref.h:48,
from ./include/string:43,
from ./include/loc/_locale.h:36,
from ./include/rw/_iosbase.h:36,
from ./include/streambuf:39,
from ./include/ostream:39,
from ./include/istream:38,
from ./include/iostream:33,
from test_stdcxx_1.cpp:4::
./include/rw/_traits.h:104:51: cstring: No such file or directory
In file included from ./include/rw/_strref.h:48,
from ./include/string:43,
from ./include/loc/_locale.h:36,
from ./include/rw/_iosbase.h:36,
from ./include/streambuf:39,
from ./include/ostream:39,
from ./include/istream:38,
from ./include/iostream:33,
from test_stdcxx_1.cpp:4:
./include/rw/_traits.h:302: error: expected `;' before state_type
./include/rw/_traits.h:303: error: `state_type' was not declared in this
scope
./include/rw/_traits.h:303: error: template argument 1 is invalid
./include/rw/_traits.h: In static member function `static _CharT*
std::char_traits_CharT::move(_CharT*, const _CharT*, unsigned int)':
./include/rw/_traits.h:347: error: `memmove' is not a member of `std'
./include/rw/_traits.h: In static member function `static _CharT*
std::char_traits_CharT::copy(_CharT*, const _CharT*, unsigned int)':
./include/rw/_traits.h:353: error: `memcpy' is not a member of `std'
./include/rw/_traits.h: At global scope:
./include/rw/_traits.h:396: error: expected `;' before state_type
./include/rw/_traits.h:397: