[LLVMdev] Use printing methods of third-party libraries that use std::ostream

Duncan Sands baldrick at free.fr
Tue Jan 31 01:28:36 PST 2012


Hi Jorge,

> I need to use the printing methods from a third-party library. The
> problem is those methods use std::cout but the use of std::ostream
> methods seems to be disabled in latest versions of LLVM.
>
> I'm aware of raw_os_ostream
> (http://llvm.org/doxygen/classllvm_1_1raw__os__ostream.html) which
> takes a std::ostream as input. E.g., I could do something like:
>
> #include "llvm/Support/raw_os_ostream.h"
> #include "llvm/Support/raw_ostream.h"
>
> raw_os_ostream * rout = new raw_os_ostream(std::cout);  // 1
> // From now on, use rout rather than std::cout          // 2
>
> The problem is that I get the error just with line 1 alone:
>
> undefined symbol: _ZTVN4llvm14raw_os_ostreamE

did you link with libLLVMSupport?

Ciao, Duncan.

>
> What I am doing wrong? How can use the printing methods of my
> third-party library?
>
> P.S. Just in case, I use clang and llvm 3.0 in a linux machine.
>
> Many thanks!
>
> Jorge
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list