C linkage and template errors in XML libs

Matt Longley mrl3734 at gmail.com
Sun Jan 10 02:15:06 EST 2016


Hi:

I just forked off the git repository and am trying to build on my Ubuntu
box; however I'm running into a problem in the XML support libraries.
There's a fairly long list of compiler errors related to C linkage. Here's
a sampling:

/bin/bash ../../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H
-I. -I../../..  -I.. -I../.. -DLOCALE_DIR=\""/usr/local/share/locale"\"
-I../../../src/backend -I../../../src/engine -I../../../src/core-utils
-I../../../src/gnc-module -I../../../lib/libc -I../../../src/libqof/qof
-I../../../src -I/usr/include/libxml2 -pthread -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -I/usr/include
-DG_LOG_DOMAIN=\"gnc.backend.xml\"  -Werror  -Wall -Wno-unused
-Wno-deprecated-register -g -O2 -std=c++11 -MT gnc-account-xml-v2.lo -MD
-MP -MF .deps/gnc-account-xml-v2.Tpo -c -o gnc-account-xml-v2.lo
gnc-account-xml-v2.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../../.. -I.. -I../..
-DLOCALE_DIR=\"/usr/local/share/locale\" -I../../../src/backend
-I../../../src/engine -I../../../src/core-utils -I../../../src/gnc-module
-I../../../lib/libc -I../../../src/libqof/qof -I../../../src
-I/usr/include/libxml2 -pthread -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include
-DG_LOG_DOMAIN=\"gnc.backend.xml\" -Werror -Wall -Wno-unused
-Wno-deprecated-register -g -O2 -std=c++11 -MT gnc-account-xml-v2.lo -MD
-MP -MF .deps/gnc-account-xml-v2.Tpo -c gnc-account-xml-v2.cpp  -fPIC -DPIC
-o .libs/gnc-account-xml-v2.o
In file included from /usr/include/c++/5/bits/stringfwd.h:40:0,
                 from /usr/include/c++/5/string:39,
                 from /usr/include/x86_64-linux-gnu/unicode/std_string.h:33,
                 from /usr/include/x86_64-linux-gnu/unicode/unistr.h:31,
                 from /usr/include/x86_64-linux-gnu/unicode/strenum.h:14,
                 from /usr/include/x86_64-linux-gnu/unicode/uenum.h:24,
                 from /usr/include/x86_64-linux-gnu/unicode/ucnv.h:51,
                 from /usr/include/libxml2/libxml/encoding.h:31,
                 from /usr/include/libxml2/libxml/parser.h:810,
                 from /usr/include/libxml2/libxml/SAX.h:18,
                 from gnc-xml-helper.h:32,
                 from gnc-account-xml-v2.cpp:36:
/usr/include/c++/5/bits/memoryfwd.h:63:3: error: template with C linkage
   template<typename>
   ^
/usr/include/c++/5/bits/memoryfwd.h:66:3: error: template specialization
with C linkage
   template<>
   ^
/usr/include/c++/5/bits/memoryfwd.h:70:3: error: template with C linkage
   template<typename, typename>
   ^
In file included from /usr/include/c++/5/string:39:0,
                 from /usr/include/x86_64-linux-gnu/unicode/std_string.h:33,
                 from /usr/include/x86_64-linux-gnu/unicode/unistr.h:31,
                 from /usr/include/x86_64-linux-gnu/unicode/strenum.h:14,
                 from /usr/include/x86_64-linux-gnu/unicode/uenum.h:24,
                 from /usr/include/x86_64-linux-gnu/unicode/ucnv.h:51,
                 from /usr/include/libxml2/libxml/encoding.h:31,
                 from /usr/include/libxml2/libxml/parser.h:810,
                 from /usr/include/libxml2/libxml/SAX.h:18,
                 from gnc-xml-helper.h:32,
                 from gnc-account-xml-v2.cpp:36:
/usr/include/c++/5/bits/stringfwd.h:52:3: error: template with C linkage
   template<class _CharT>
   ^
/usr/include/c++/5/bits/stringfwd.h:55:3: error: template specialization
with C linkage
   template<> struct char_traits<char>;
   ^
/usr/include/c++/5/bits/stringfwd.h:58:3: error: template specialization
with C linkage
   template<> struct char_traits<wchar_t>;
   ^
/usr/include/c++/5/bits/stringfwd.h:63:3: error: template specialization
with C linkage
   template<> struct char_traits<char16_t>;
   ^
/usr/include/c++/5/bits/stringfwd.h:64:3: error: template specialization
with C linkage
   template<> struct char_traits<char32_t>;
   ^
/usr/include/c++/5/bits/stringfwd.h:69:3: error: template with C linkage
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
   ^
In file included from /usr/include/c++/5/bits/stl_algobase.h:61:0,
                 from /usr/include/c++/5/bits/char_traits.h:39,
                 from /usr/include/c++/5/string:40,
                 from /usr/include/x86_64-linux-gnu/unicode/std_string.h:33,
                 from /usr/include/x86_64-linux-gnu/unicode/unistr.h:31,
                 from /usr/include/x86_64-linux-gnu/unicode/strenum.h:14,
                 from /usr/include/x86_64-linux-gnu/unicode/uenum.h:24,
                 from /usr/include/x86_64-linux-gnu/unicode/ucnv.h:51,
                 from /usr/include/libxml2/libxml/encoding.h:31,
                 from /usr/include/libxml2/libxml/parser.h:810,
                 from /usr/include/libxml2/libxml/SAX.h:18,
                 from gnc-xml-helper.h:32,
                 from gnc-account-xml-v2.cpp:36:
/usr/include/c++/5/bits/cpp_type_traits.h:72:3: error: template with C
linkage
   template<typename _Iterator, typename _Container>


...and so on and so forth. Any idea what's causing this, and is there a
workaround? I skimmed the mailing list archives and it seems like there
have been issues with this in the past, but I couldn't find any relating to
this library.

If it helps, I have the libxml2, libxml++2.6-dev, libxml++2.6-2v5,
libxslt1.1, and libxslt-dev packages installed on Ubuntu 15.10. Thanks.


More information about the gnucash-devel mailing list