I'm trying to use the llvm framework to output formatted text using the llvm::formatv()
function.
E.g. I want to output a double
to a llvm raw_ostream
, basically using this code:
someStream << llvm::formatv("{0}", someDouble);
I think, that I'm including the right headers for this to work, obviously I need both llvm/Support/raw_ostream.h
and llvm/Support/FormatVariadic.h
. Additionally I tried to include other headers, like e.g. llvm/Support/FormatAdapters.h
.
Unfortunately I'm getting the following error, when I try to build:
Undefined symbols for architecture x86_64:
"typeinfo for llvm::detail::format_adapter", referenced from:
typeinfo for llvm::detail::provider_format_adapter<double> in libjuiceDiagnostics.a(Diagnostics.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What could be the problem? Unfortunately the llvm documentation didn't help me with this problem.
If it matters, I'm linking the llvm libraries like this in my CMakeLists.txt
:
set(LLVM_CONFIG_CMD "${LLVM_INSTALL_DIR}/bin/llvm-config")
execute_process(COMMAND ${LLVM_CONFIG_CMD} --libfiles
OUTPUT_VARIABLE LLVM_LIBS
OUTPUT_STRIP_TRAILING_WHITESPACE)
separate_arguments(LLVM_LIBS)
target_link_libraries(myTarget ${LLVM_LIBS})
Therefore no library should be missing.
Please login or Register to submit your answer