[cfe-dev] Linking issues after upgrading 6.0.0 -> 7.0.0 with homebrew
Tom Stellard via cfe-dev
cfe-dev at lists.llvm.org
Mon Oct 8 19:24:37 PDT 2018
On 10/08/2018 07:16 PM, Scott Douglas Constable via cfe-dev wrote:
> Hi All,
>
> I have a clang-based tool that links to the LLVM/clang static libraries. It was building without issues with LLVM 5 and 6. Today I upgraded to LLVM 7.0.0 with homebrew, and I'm suddenly getting linker errors:
>
It looks like these symbols were moved to libclangToolingInclusions.a,
so you will need to add that to your linker invocation.
-Tom
> Undefined symbols for architecture x86_64:
> "llvm::yaml::MappingTraits<clang::tooling::IncludeStyle::IncludeCategory>::mapping(llvm::yaml::IO&, clang::tooling::IncludeStyle::IncludeCategory&)", referenced from:
> std::__1::enable_if<has_SequenceTraits<std::__1::vector<clang::tooling::IncludeStyle::IncludeCategory, std::__1::allocator<clang::tooling::IncludeStyle::IncludeCategory> > >::value, void>::type llvm::yaml::yamlize<std::__1::vector<clang::tooling::IncludeStyle::IncludeCategory, std::__1::allocator<clang::tooling::IncludeStyle::IncludeCategory> >, llvm::yaml::EmptyContext>(llvm::yaml::IO&, std::__1::vector<clang::tooling::IncludeStyle::IncludeCategory, std::__1::allocator<clang::tooling::IncludeStyle::IncludeCategory> >&, bool, llvm::yaml::EmptyContext&) in libclangFormat.a(Format.cpp.o)
> "llvm::yaml::ScalarEnumerationTraits<clang::tooling::IncludeStyle::IncludeBlocksStyle>::enumeration(llvm::yaml::IO&, clang::tooling::IncludeStyle::IncludeBlocksStyle&)", referenced from:
> void llvm::yaml::IO::processKey<clang::tooling::IncludeStyle::IncludeBlocksStyle, llvm::yaml::EmptyContext>(char const*, clang::tooling::IncludeStyle::IncludeBlocksStyle&, bool, llvm::yaml::EmptyContext&) in libclangFormat.a(Format.cpp.o)
> "clang::tooling::IncludeCategoryManager::IncludeCategoryManager(clang::tooling::IncludeStyle const&, llvm::StringRef)", referenced from:
> clang::format::sortCppIncludes(clang::format::FormatStyle const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, llvm::StringRef, clang::tooling::Replacements&, unsigned int*) in libclangFormat.a(Format.cpp.o)
> "clang::tooling::IncludeCategoryManager::getIncludePriority(llvm::StringRef, bool) const", referenced from:
> clang::format::sortCppIncludes(clang::format::FormatStyle const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, llvm::StringRef, clang::tooling::Replacements&, unsigned int*) in libclangFormat.a(Format.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)
>
> All of my source files compiled without any issues. A quick look through the LLVM online documentation suggests that these functions still exist in the LLVM codebase. But I'm at a loss as to how to explain these missing symbols.
>
> Any suggestions would be much appreciated.
>
> Scott Constable
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
More information about the cfe-dev
mailing list