Steve Petrie, P.Eng. wrote:
[...]
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
You also need -I./include/ansi. Its also a good idea to avoid
using the g++ command and use gcc instead just to make it 100%
clear that the native C++ Standard Library should not be linked
(unless you know better , I don't think you want -nostdlib as
it normally prevents linking with files you want to link with).
(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
That's because you're missing -Iinlude/ansi -- that's where
our cwchar lives. All the errors after this one should clear
up after you add it.
Martin