Hi All,
I am having trouble with regex on an Alpha-Dec with Compaq's compiler 6.3.
I've got regex to compile with generic.mak as follows:
CXX="cxx" CXXFLAGS="-inline-none" -D__USE_STD_IOSTREAM
-DBOOST_REGEX_NO_EXTERNAL_TEMPLATES" LINKER="cxx" gnumake generic.mak
but then it comes to the link step an error occures:
ld:
Unresolved:
main
Nevertheless, boost_regex.so is being build, but when I try to link an
application with boost_regex.so I do get loads of errors concerning the
C++ standard library:
ld (prelink):
/usr/lib/cmplrs/cxx/V6.3-008/libcxxstd.a(cxxl_std_init.o): std::cout:
multiply defined
Warning: std::basic_string::npos defined as GLOBAL RCONST but is defined in
a shared lib as a GLOBAL OBJECT
Warning: std::basic_string,
std::allocator >::npos defined as GLOBAL RCONST but is defined
in a shared lib as a GLOBAL OBJECT
Warning: std::locale::collate defined as GLOBAL RCONST but is defined in
a shared lib as a GLOBAL OBJECT
Warning: std::locale::ctype defined as GLOBAL RCONST but is defined in a
shared lib as a GLOBAL OBJECT
Warning: std::locale::monetary defined as GLOBAL RCONST but is defined
in a shared lib as a GLOBAL OBJECT
Warning: std::locale::numeric defined as GLOBAL RCONST but is defined in
a shared lib as a GLOBAL OBJECT
...
Does anybody know what's wrong there? Both -D__USE_STD_IOSTREAM and
-DBOOST_REGEX_NO_EXTERNAL_TEMPLATES are necessary to compile regex at
all. -D__USE_STD_IOSTREAM tells the compiler to use the standard
iostream library instead of the older non-standard version (which is the
default for this platform). Without -DBOOST_REGEX_NO_EXTERNAL_TEMPLATES
the compiler complains about some templates.
I also tried to compile regex with gcc, but again I could not link the
application. Linking gcc-compiled (c++) libraries with Compaq's object
files and vice versa does not seem to work in generall. Building
everything with gcc failed due to seome other incompatibilities.
Thanks for any help.
Ralf