LLVM:如何将所有链接库指定为 llvm_map_components_to_libnames() 的输入

Shu*_*eng 2 c++ cmake llvm

我需要一个额外的库作为链接器输入,因为链接器找不到符号。

llvm_map_components_to_libnames(llvm_libs support core bitreader)

target_link_libraries(SkeletonPass ${llvm_libs})
Run Code Online (Sandbox Code Playgroud)

组件中必须缺少缺少的库。

如何将所有组件指定为输入?

fed*_*pad 5

首先,虽然它已经过时了,但我建议你阅读以下 http://releases.llvm.org/2.7/docs/UsingLibraries.html,
这是一个很好的阅读。在那是提示太查了llvm-config

LLVM 附带了一个工具llvm-config ,它可以在您的情况下为您提供帮助。
其次,我热烈建议您查看以下 SO 帖子
如何在使用 llvm 库构建时进行链接?
其中也提到了这个工具。
查看我链接的文档,这是概要:

llvm-config option [components...] 
Run Code Online (Sandbox Code Playgroud)

如果components未指定,则其默认值为allwhich 根据文档:

包括所有 LLVM 库。如果未指定组件,则为默认值。

我将明确添加all在您的情况下可以省略的内容。

llvm-config --components all

打印所有有效的组件名称。

同时 llvm-config --libs all

打印链接到指定 LLVM 组件所需的所有库,包括任何依赖项。

请检查llvm-config --help更多选项和信息。

因此,要回答您的问题,您可以使用上述命令打印所有组件并将它们放入llvm_map_components_to_libnames().