Question

I try to compile cln with clang and libc++ linked as my project, which uses ginac (which itself uses cln) requires certain c++11 features. During my attempts I found out, that linking against libc++ instead of stdlibc++ should do the trick, so I ended up in using the following command to configure:

./configure CXX=/usr/bin/clang++ CXXFLAGS="-stdlib=libc++ -std=c++11" LDFLAGS="-stdlib=libc++"

which works fine. However I get the following error messages upon invoking make:

Making all in src
/bin/sh ../libtool  --tag=CXX   --mode=compile /usr/bin/clang++ -DHAVE_CONFIG_H -I. -    I../autoconf  -I../include -I../src -I../include -I../src   -stdlib=libc++ -std=c++11 -MT   cl_alloca.lo -MD -MP -MF .deps/cl_alloca.Tpo -c -o cl_alloca.lo `test -f 'base/cl_alloca.cc'  || echo './'`base/cl_alloca.cc
libtool: compile:  /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../autoconf -I../include -   I../src -I../include -I../src -stdlib=libc++ -std=c++11 -MT cl_alloca.lo -MD -MP -MF .deps/cl_alloca.Tpo -c base/cl_alloca.cc  -fno-common -DPIC -o .libs/cl_alloca.o
In file included from base/cl_alloca.cc:4:
In file included from ./base/cl_sysdep.h:56:
In file included from ./base/cl_macros.h:7:
../include/cln/exception.h:14:24: error: implicit instantiation of undefined template     'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >'
            : std::runtime_error(std::string()) {}
                                 ^
/usr/bin/../lib/c++/v1/iosfwd:187:28: note: template is declared here
    class _LIBCPP_TYPE_VIS basic_string;
                       ^
1 error generated.
make[1]: *** [cl_alloca.lo] Error 1
make: *** [all-recursive] Error 1

What am I doing wrong and how can I interpret this errormessage and finally fix my problem?

Was it helpful?

Solution

In include/cln/exception.h, include <string>:

// Exception types.

#ifndef _CL_EXCEPTION_H
#define _CL_EXCEPTION_H

#include <stdexcept>
+ #include <string>

namespace cln {

This is just a bug in cln/exception.h.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top