我正在查看由 clang 转换为 cpp 文件的 llvm ir 文件。但我发现 llvm ir 文件中有几个函数只有声明而没有定义。而且所有这些功能都不是“内置”功能,例如:
declare i32 @puts(i8* nocapture)
就像是:
declare void @_ZNK5Arrow7BaseRow9getColumnINS_11IpGenPrefixEEEvtRT_(%"class.Arrow::BaseRow"*, i16 zeroext, %"class.Arrow::IpGenPrefix"* dereferenceable(24)) #0
似乎这些函数正在使用一些外部定义?我是 LLVM IR 的新手。我想知道 LLVM IR 是否可以像 cpp 库那样做,我可以存储我将在一些 LLVM IR 库中使用的函数,并通过像 include 之类的操作在 .ll 文件中使用它们?
谢谢