<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: C++ link problem  undefined symbol std::basic_string in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154471#M45183</link>
    <description>&amp;gt;&amp;gt;&amp;gt; I always use CXXLINK with any C++ programs/modules, not LINK.&lt;BR /&gt;&lt;BR /&gt;If you get the real linker messages with mangled names, then you either use LINK or CXXLINK doesn't have access to the CXX_REPORITORY with the demangle information. The latter may be the case if the object module wasn't compiled on your system. This application came as source code, right?, so I assume you compiled everything.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; What about undefined symbols? Please what do you think about?&lt;BR /&gt;&lt;BR /&gt;CURRENTDEBUG__5DEBUG looks like a user defined function like currentDebug which expects a class/struct named "debug", or so. An application object module with its definition is missing in the link operation. Or, the source lines with the definition were not compiled.&lt;BR /&gt;&lt;BR /&gt;CXXL$CTQ13STD62BSCSTRNGC1626C2E looks like a C++ name, which should be in one of the supplied C++ shareable images or OLBs. As I said, I can't find it on my system, but I have different compilers. On the other hand, CXXLINK should include these libraries for you.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; here is a fragment from LIS file:&lt;BR /&gt;&lt;BR /&gt;The fragment shows the include file and the expansion of the macro SQUIDCEXTERN. Did you check the whole .LIS if and where the name "stringHasWhitespace" shows?&lt;BR /&gt;&lt;BR /&gt;For only a 'extern "C" int stringHasWhitespace(const char *);' the C++ compiler will not define the global symbol STRINGHASWHITESPACE. LIBRARIAN only adds global symbols which define something (a function, an object) to the symbol table of the OLB. There should be more than just that "extern" line in this source.&lt;BR /&gt;&lt;BR /&gt;It's unlikely that this is a C++ compiler bug.</description>
    <pubDate>Thu, 05 Feb 2009 18:38:20 GMT</pubDate>
    <dc:creator>x2084</dc:creator>
    <dc:date>2009-02-05T18:38:20Z</dc:date>
    <item>
      <title>C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154462#M45174</link>
      <description>Hello!&lt;BR /&gt;In linking C++ I see undefined symbols.&lt;BR /&gt;Please help?&lt;BR /&gt;&lt;BR /&gt;CXXL []cf_gen.obj,debug.obj,time.obj,globals.obj,squid/LIB,auth/LIB,[-.LIB]miscu&lt;BR /&gt;til/LIB&lt;BR /&gt;%LINK-W-MULDEF, symbol DECC$TOLOWER multiply defined&lt;BR /&gt;        in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;1&lt;BR /&gt;%LINK-W-NUDFSYMS, 2 undefined symbols:&lt;BR /&gt;%LINK-I-UDFSYM,         std::basic_ostringstream&lt;CHAR&gt; , &lt;BR /&gt;std::allocator&lt;CHAR&gt; &amp;gt; ::basic_ostringstream(int) &lt;BR /&gt;%LINK-I-UDFSYM,         std::basic_string&lt;CHAR&gt; , std::al&lt;BR /&gt;locator&lt;CHAR&gt; &amp;gt;  std::basic_ostringstream&lt;CHAR&gt; , std::al&lt;BR /&gt;locator&lt;CHAR&gt; &amp;gt; ::str() const &lt;BR /&gt;%LINK-W-USEUNDEF, undefined symbol std::basic_string&lt;CHAR&gt;&lt;/CHAR&gt;&amp;gt; , std::allocator&lt;CHAR&gt; &amp;gt;  std::basic_ostringstream&lt;CHAR&gt;&lt;/CHAR&gt;&amp;gt; , std::allocator&lt;CHAR&gt; &amp;gt; ::str() const referenced&lt;BR /&gt;        in psect $LINK$ offset %X000014A0&lt;BR /&gt;        in module DEBUG file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE&lt;BR /&gt;11.SRC]DEBUG.OBJ;1&lt;BR /&gt;%LINK-W-USEUNDEF, undefined symbol std::basic_ostringstream&lt;CHAR&gt;&lt;/CHAR&gt;ts&lt;CHAR&gt; , std::allocator&lt;CHAR&gt; &amp;gt; ::basic_ostringstream(int) referenced&lt;BR /&gt;        in psect $LINK$ offset %X00001640&lt;BR /&gt;        in module DEBUG file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE&lt;BR /&gt;11.SRC]DEBUG.OBJ;1&lt;BR /&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;</description>
      <pubDate>Tue, 03 Feb 2009 14:30:42 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154462#M45174</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-03T14:30:42Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154463#M45175</link>
      <description>Forget to say,&lt;BR /&gt;compiling with  /DEF=(__USE_STD_IOSTREAM)</description>
      <pubDate>Tue, 03 Feb 2009 14:56:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154463#M45175</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-03T14:56:27Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154464#M45176</link>
      <description>&amp;gt; %LINK-W-MULDEF, symbol DECC$TOLOWER multiply defined&lt;BR /&gt;&lt;BR /&gt;If your source code contains its own&lt;BR /&gt;tolower() function, get rid of it.  (Bad&lt;BR /&gt;"config.h" choices?)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;gt; %LINK-I-UDFSYM, std::basic_ostringstream [...]&lt;BR /&gt;&lt;BR /&gt;I know almost nothing about C++, but I'd&lt;BR /&gt;guess that you're calling basic_ostringstream&lt;BR /&gt;with argument types which don't match the&lt;BR /&gt;standard ones.</description>
      <pubDate>Tue, 03 Feb 2009 15:10:16 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154464#M45176</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-02-03T15:10:16Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154465#M45177</link>
      <description>Looks like C++ templates, which aren't  found/ instantiated. If you compile in different directories, make sure that the linker can get to all [.CXX_REPOSITORY] directories. In one of them there should be an object file instantiating the template, that is defining the missing symbols. CXXLINK has a /REPOSITORY switch. HELP should explain how to use it. Also, check the documentation how template instantation is done, on Alpha.&lt;BR /&gt;&lt;BR /&gt;And yes, get rid of the MULDEF, your copy of tolower used in the image, right now.</description>
      <pubDate>Tue, 03 Feb 2009 15:26:39 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154465#M45177</guid>
      <dc:creator>x2084</dc:creator>
      <dc:date>2009-02-03T15:26:39Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154466#M45178</link>
      <description>Unfortunately, cant solve the problem yet.&lt;BR /&gt;&lt;BR /&gt;Things are more strange. I do not understand this things any more.&lt;BR /&gt;&lt;BR /&gt;Previously I tried on 7.3-2. CXX is V7.3-009&lt;BR /&gt;Now I've tried the same sources with the same DESCRIP.MMS on the 8.2 with the same version of the compiler - another strange:&lt;BR /&gt;%LINK-I-UDFSYM,         CURRENTDEBUG__5DEBUG&lt;BR /&gt;%LINK-I-UDFSYM,         CXXL$CTQ13STD62BSCSTRNGC1626C2E&lt;BR /&gt;%LINK-W-USEUNDEF, undefined symbol CURRENTDEBUG__5DEBUG referenced&lt;BR /&gt;        in psect $LINK$ offset %X00001450&lt;BR /&gt;        in module DEBUG file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE11.SRC]DEBUG.OBJ;1&lt;BR /&gt;%LINK-W-USEUNDEF, undefined symbol CXXL$CTQ13STD62BSCSTRNGC1626C2E referenced&lt;BR /&gt;        in psect $LINK$ offset %X00001D40&lt;BR /&gt;        in module DEBUG file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE11.SRC]DEBUG.OBJ;1&lt;BR /&gt;</description>
      <pubDate>Wed, 04 Feb 2009 19:50:34 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154466#M45178</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-04T19:50:34Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154467#M45179</link>
      <description>And for finish:&lt;BR /&gt;so called *the best*&lt;BR /&gt;&lt;BR /&gt;It seems tonn bugs in the HP C++ compiler ??&lt;BR /&gt;&lt;BR /&gt;I'm compiling source files, as I do it many thousend times:&lt;BR /&gt;cxx /INCLUDE=([],[-],[-.include])           /DEFINE=(HAVE_CONFIG_H,__USE_STD_IOSTREAM)        /OPTIMIZE=(INLINE=SPEED)         /WARN&lt;BR /&gt;=(DIS=EXTRASEMI)  AUTHSCHEME.CC &lt;BR /&gt;&lt;BR /&gt;cxx /INCLUDE=([],[-],[-.include])           /DEFINE=(HAVE_CONFIG_H,__USE_STD_IOSTREAM)        /OPTIMIZE=(INLINE=SPEED)         /WARN&lt;BR /&gt;=(DIS=EXTRASEMI)AUTHUSER.CC&lt;BR /&gt;&lt;BR /&gt;LIB/CREA AUTH AUTHSCHEME.OBJ,AUTHUSER.OBJ&lt;BR /&gt;&lt;BR /&gt;I just got:&lt;BR /&gt;%LIBRAR-E-DUPGLOBAL, global symbol STRINGHASWHITESPACE from file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE11.SRC]AUTHSCHEM&lt;BR /&gt;E.OBJ;1 already in library SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE11.SRC]auth.olb;1&lt;BR /&gt;%LIBRAR-E-DUPGLOBAL, global symbol STRINGHASWHITESPACE from file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE11.SRC]AUTHUSER.&lt;BR /&gt;OBJ;1 already in library SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE11.SRC]auth.olb;1&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The STRINGHASWHITESPACE is defined in header&lt;BR /&gt;as SQUIDCEXTERN int stringHasWhitespace(const char *);&lt;BR /&gt;SQUIDCEXTERN is defined&lt;BR /&gt;&lt;BR /&gt;#ifdef __cplusplus&lt;BR /&gt;#define SQUIDCEXTERN extern "C"&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;And, I wish to say, there are lot of functions (about 30 or 40) defined exactly as stringHasWhitespace before and later that string. But troubles are only with stringHasWhitespace()&lt;BR /&gt;&lt;BR /&gt;Please, I need your help</description>
      <pubDate>Wed, 04 Feb 2009 20:11:50 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154467#M45179</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-04T20:11:50Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154468#M45180</link>
      <description>Ohh I forget to say (for a second time!)&lt;BR /&gt;This problem solves very very strange:&lt;BR /&gt;&lt;BR /&gt;If I preprocess first the file&lt;BR /&gt;like &lt;BR /&gt;CXX ...MY FLAGS... /PREP file.cc&lt;BR /&gt;CXX file.ixx&lt;BR /&gt;&lt;BR /&gt;I avoid the error with dublicate name.&lt;BR /&gt;Is it bug in CXX ??&lt;BR /&gt;</description>
      <pubDate>Wed, 04 Feb 2009 20:15:14 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154468#M45180</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-04T20:15:14Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154469#M45181</link>
      <description>&amp;gt;&amp;gt;&amp;gt; %LINK-I-UDFSYM, CURRENTDEBUG__5DEBUG&lt;BR /&gt;%LINK-I-UDFSYM, CXXL$CTQ13STD62BSCSTRNGC1626C2E&lt;BR /&gt;&lt;BR /&gt;This is the real thing, the Alpha linker, but you are linking C++. On Alpha you should always use CXXLINK if there are C++ modules included in the link operation.&lt;BR /&gt;&lt;BR /&gt;I can't find CXXL$CTQ13STD62BSCSTRNGC1626C2E in the CXX OLBs on my system. I have no idea where it comes from and how to demangle it. If you use CXXLINK, the UDFSYM message will be demangled. That should give you a hint.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; LIB/CREA AUTH AUTHSCHEME.OBJ,AUTHUSER.OBJ&lt;BR /&gt;&lt;BR /&gt;Looks odd to me. If there is a duplicate symbol in both object modules, you should see only one error message, here from AUTHUSER. /CREA creates a fresh library. But even if you replace both modules and there is a duplicate, you should only see a message from the last module. It looks like you already have a different module defining that symbol in the OLB. But that doesn't match your /CREA.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; SYS$SYSROOT:[SYSMGR.ALEX.GNU....&lt;BR /&gt;&lt;BR /&gt;SYS$SYSROOT is a search list, I don't think you need it, I don't think it's the cause of your problem, but it may be confusing and I would avoid it, here.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;  #ifdef __cplusplus&lt;BR /&gt;#define SQUIDCEXTERN extern "C"&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;This doesn't say anything about where the definition of the function is. You can always use "extern int foo();" and later on in the same source an "int foo(){return 0;}".&lt;BR /&gt;&lt;BR /&gt;It looks like something is wrong with the macro definitions and/or the conditional compilation, as you indicate in the next reply. I would rather use /list/show=all to determine where the stringHasWhitespace() is defined.&lt;BR /&gt;</description>
      <pubDate>Thu, 05 Feb 2009 09:43:16 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154469#M45181</guid>
      <dc:creator>x2084</dc:creator>
      <dc:date>2009-02-05T09:43:16Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154470#M45182</link>
      <description>&lt;BR /&gt;&amp;gt;&amp;gt; This is the real thing, the Alpha linker, &lt;BR /&gt;&amp;gt;&amp;gt;but you are linking C++. On Alpha you &lt;BR /&gt;&amp;gt;&amp;gt;should always use CXXLINK if there are C++ &lt;BR /&gt;&amp;gt;&amp;gt;modules included in the link operation.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I always use CXXLINK with any C++ programs/modules, not LINK.&lt;BR /&gt;&lt;BR /&gt;What about undefined symbols? Please what do you think about?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt; I would rather use /list/show=all to &lt;BR /&gt;&amp;gt;&amp;gt;determine where the stringHasWhitespace() &lt;BR /&gt;&amp;gt;&amp;gt;is defined. "&lt;BR /&gt;&lt;BR /&gt;Ok,&lt;BR /&gt;here is a fragment from LIS file:&lt;BR /&gt;&lt;BR /&gt;-----------------------------------------------&lt;BR /&gt;I3   46192 SQUIDCEXTERN void kb_incr(kb_t *, size_t);&lt;BR /&gt;       E        extern "C" void kb_incr(kb_t *, size_t);&lt;BR /&gt;     I3   46193 SQUIDCEXTERN int stringHasWhitespace(const char *);&lt;BR /&gt;       E        extern "C" int stringHasWhitespace(const char *);&lt;BR /&gt;     I3   46194 SQUIDCEXTERN int stringHasCntl(const char *);&lt;BR /&gt;       E        extern "C" int stringHasCntl(const char *);&lt;BR /&gt;---------------------------------------------&lt;BR /&gt;&lt;BR /&gt;How can you see, "SQUIDCEXTERN" is become&lt;BR /&gt;"extern "C""&lt;BR /&gt;Please note, Neither global stringHasCntl, no global kb_incr leads to such error. &lt;BR /&gt;stringHasWhitespace() only is.&lt;BR /&gt;&lt;BR /&gt;And one more important thing.&lt;BR /&gt;No stringHasWhitespace() is using in that c++ sources either.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;stringHasWhitespace() is only in a header...&lt;BR /&gt;&lt;BR /&gt;Problems still here, what do you think about?</description>
      <pubDate>Thu, 05 Feb 2009 15:12:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154470#M45182</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-05T15:12:08Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154471#M45183</link>
      <description>&amp;gt;&amp;gt;&amp;gt; I always use CXXLINK with any C++ programs/modules, not LINK.&lt;BR /&gt;&lt;BR /&gt;If you get the real linker messages with mangled names, then you either use LINK or CXXLINK doesn't have access to the CXX_REPORITORY with the demangle information. The latter may be the case if the object module wasn't compiled on your system. This application came as source code, right?, so I assume you compiled everything.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; What about undefined symbols? Please what do you think about?&lt;BR /&gt;&lt;BR /&gt;CURRENTDEBUG__5DEBUG looks like a user defined function like currentDebug which expects a class/struct named "debug", or so. An application object module with its definition is missing in the link operation. Or, the source lines with the definition were not compiled.&lt;BR /&gt;&lt;BR /&gt;CXXL$CTQ13STD62BSCSTRNGC1626C2E looks like a C++ name, which should be in one of the supplied C++ shareable images or OLBs. As I said, I can't find it on my system, but I have different compilers. On the other hand, CXXLINK should include these libraries for you.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; here is a fragment from LIS file:&lt;BR /&gt;&lt;BR /&gt;The fragment shows the include file and the expansion of the macro SQUIDCEXTERN. Did you check the whole .LIS if and where the name "stringHasWhitespace" shows?&lt;BR /&gt;&lt;BR /&gt;For only a 'extern "C" int stringHasWhitespace(const char *);' the C++ compiler will not define the global symbol STRINGHASWHITESPACE. LIBRARIAN only adds global symbols which define something (a function, an object) to the symbol table of the OLB. There should be more than just that "extern" line in this source.&lt;BR /&gt;&lt;BR /&gt;It's unlikely that this is a C++ compiler bug.</description>
      <pubDate>Thu, 05 Feb 2009 18:38:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154471#M45183</guid>
      <dc:creator>x2084</dc:creator>
      <dc:date>2009-02-05T18:38:20Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154472#M45184</link>
      <description>&amp;gt;&amp;gt;LIBRARIAN only adds global symbols which &lt;BR /&gt;&amp;gt;&amp;gt;define something (a function, an object) to &lt;BR /&gt;&amp;gt;&amp;gt;the symbol table of the OLB. There should be &lt;BR /&gt;&amp;gt;&amp;gt;more than just that "extern" line in this &lt;BR /&gt;&amp;gt;&amp;gt;source.&lt;BR /&gt;&lt;BR /&gt;Yes, of course. And please look to the strange thing, that I treat as fantastic behavor.&lt;BR /&gt;&lt;BR /&gt;---------------------------------------------------&lt;BR /&gt;$cxx /INCLUDE=([],[-],[--.include]) /DEFINE=(__USE_STD_IOSTREAM)/WARN=DIS=EXTRASEMI/DEB /LIST/SHOW=ALL UFSCOMMON.CC&lt;BR /&gt;&lt;BR /&gt;$ search UFSCOMMON.LIS stringHasWhitespace &lt;BR /&gt;     I3   46190 SQUIDCEXTERN int stringHasWhitespace(const char *);&lt;BR /&gt;       E        extern "C" int stringHasWhitespace(const char *);&lt;BR /&gt;     I1   50774 stringHasWhitespace(const char *s)&lt;BR /&gt;---------------------------------------------------&lt;BR /&gt;How can you see, there is a line 50774, a function definition statement, that generates a global symbol. And this statement is present on every OBJ and LIB shows duplicate symbol error. Ok.&lt;BR /&gt;But if I do split preprocessor stage and compilation by hands:&lt;BR /&gt;---------------------------------------------------&lt;BR /&gt;$cxx /INCLUDE=([],[-],[--.include])  /DEFINE=(__USE_STD_IOSTREAM)/WARN=DIS=EXTRASEMI /DEB /LIST/SHOW=ALL [.UFS]UFSCOMMON&lt;BR /&gt;.CC  /PREP&lt;BR /&gt;&lt;BR /&gt;$cxx /LIS=ufscommon_ixx.lis ufscommon.ixx&lt;BR /&gt;&lt;BR /&gt;$search ufscommon_ixx.lis stringHasWhitespace&lt;BR /&gt;&lt;BR /&gt;         36045 extern "C" int stringHasWhitespace(const char *);&lt;BR /&gt;&lt;BR /&gt;---------------------------------------------------&lt;BR /&gt;&lt;BR /&gt;How can you see, no function definition statement (as it should be).&lt;BR /&gt;Any ideas? &lt;BR /&gt;</description>
      <pubDate>Fri, 06 Feb 2009 06:50:14 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154472#M45184</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-06T06:50:14Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154473#M45185</link>
      <description>"[.UFS]UFSCOMMON.CC"&lt;BR /&gt;please treat as "UFSCOMMON.CC"   - when copy/paste from terminal I do make the mistake.&lt;BR /&gt;It is really pain that message cannot be edited after posting. :( :(&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 06 Feb 2009 07:00:06 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154473#M45185</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-06T07:00:06Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154474#M45186</link>
      <description>I start new thread devoted to "Strange behavor of C++" about duplicate names. Please answer there.&lt;BR /&gt;&lt;BR /&gt;But about missing modules (topic of this thread) - I really do not understand what does it mean&lt;BR /&gt;"CXXLINK doesn't have access to the CXX_REPORITORY with the demangle information."&lt;BR /&gt;&lt;BR /&gt;I login via SYSTEM account, compiling sources from scratch with usual keys. &lt;BR /&gt;Never use /REPOSITORY. I really do not need it. Other products are compiling fine. &lt;BR /&gt;Today I'll return to home and try once more on the 8.2 system.&lt;BR /&gt;&lt;BR /&gt;But what about error I got on the 7.3-2 ?&lt;BR /&gt;---------------------------------------------------&lt;BR /&gt; %LINK-W-NUDFSYMS, 2 undefined symbols:&lt;BR /&gt;%LINK-I-UDFSYM, std::basic_ostringstream&lt;CHAR&gt; ,&lt;BR /&gt;std::allocator&lt;CHAR&gt; &amp;gt; ::basic_ostringstream(int)&lt;BR /&gt;%LINK-I-UDFSYM, std::basic_string&lt;CHAR&gt; , std::al&lt;BR /&gt;locator&lt;CHAR&gt; &amp;gt; std::basic_ostringstream&lt;CHAR&gt; , std::al&lt;BR /&gt;locator&lt;CHAR&gt; &amp;gt; ::str() const&lt;BR /&gt;%LINK-W-USEUNDEF, undefined symbol std::basic_string&lt;CHAR&gt;&lt;/CHAR&gt;&amp;gt; , std::allocator&lt;CHAR&gt; &amp;gt; std::basic_ostringstream&lt;CHAR&gt;&lt;/CHAR&gt;&amp;gt; , std::allocator&lt;CHAR&gt; &amp;gt; ::str() const referenced&lt;BR /&gt;in psect $LINK$ offset %X000014A0&lt;BR /&gt;in module DEBUG file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE&lt;BR /&gt;11.SRC]DEBUG.OBJ;1&lt;BR /&gt;%LINK-W-USEUNDEF, undefined symbol std::basic_ostringstream&lt;CHAR&gt;&lt;/CHAR&gt;ts&lt;CHAR&gt; , std::allocator&lt;CHAR&gt; &amp;gt; ::basic_ostringstream(int) referenced&lt;BR /&gt;in psect $LINK$ offset %X00001640&lt;BR /&gt;in module DEBUG file SYS$SYSROOT:[SYSMGR.ALEX.GNU.SQUID.SQUID-3_0_STABLE&lt;BR /&gt;11.SRC]DEBUG.OBJ;1&lt;BR /&gt;------------------------------------------------------&lt;BR /&gt;&lt;BR /&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;&lt;/CHAR&gt;</description>
      <pubDate>Fri, 06 Feb 2009 12:13:04 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154474#M45186</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-06T12:13:04Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154475#M45187</link>
      <description>ostringstream &lt;CHAR&gt;  description is really present in sstream.h&lt;BR /&gt;is it mean that STDC++ library does not contain&lt;BR /&gt;such function?&lt;BR /&gt;Bug?&lt;BR /&gt;&lt;/CHAR&gt;</description>
      <pubDate>Fri, 06 Feb 2009 12:53:44 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154475#M45187</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-06T12:53:44Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154476#M45188</link>
      <description>&amp;gt;&amp;gt;&amp;gt; ostringstream &lt;CHAR&gt; description is really present in sstream.h&lt;BR /&gt;&lt;BR /&gt;Please read the documentation about templates in C++ on OpenVMS/Alpha.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;  I start new thread devoted to "Strange behavor of C++" about duplicate names. &lt;BR /&gt;&lt;BR /&gt;If you don't mind, I add my comments, here.&lt;BR /&gt;Squid comes with "String.cc", the compiler wants/needs its "string.cc", it finds your/Squid's [...SRC]STRING.CC and includes it. That defines stringHasWhiteSpace().&lt;BR /&gt;&lt;BR /&gt;No, defining _USE_INLINE_ 1 or 0 doesn't help. Sorry, I don't have the time to try what the C++ compiler does on ODS5.&lt;BR /&gt;&lt;BR /&gt;&lt;/CHAR&gt;</description>
      <pubDate>Fri, 06 Feb 2009 14:17:44 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154476#M45188</guid>
      <dc:creator>x2084</dc:creator>
      <dc:date>2009-02-06T14:17:44Z</dc:date>
    </item>
    <item>
      <title>Re: C++ link problem  undefined symbol std::basic_string</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154477#M45189</link>
      <description>It seems I should find solution at another place</description>
      <pubDate>Sat, 07 Feb 2009 13:01:02 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-link-problem-undefined-symbol-std-basic-string/m-p/5154477#M45189</guid>
      <dc:creator>Alex Chupahin</dc:creator>
      <dc:date>2009-02-07T13:01:02Z</dc:date>
    </item>
  </channel>
</rss>

