我知道如何使用以下命令查看某个组件对应的库:
llvm-config --libs core
现在,假设我遇到链接器错误并希望包含另一个库来解决它。
比如说,链接器无法解析某些符号A
。那我该怎么办:
1) 找到包含特定符号的库,例如LLVMCore.lib。
2)查找库的内容以查看它定义了哪些符号?
阅读文档时我不明白如何执行此操作。
最佳答案
正如您已经发现的一个正确的 LLVM 方式来执行此操作将使用 llvm-config通过指示您想要链接或使用的组件,例如
llvm-config --cxxflags --ldflags --system-libs --libs core
可用于查找符号的其他常见非 llvm 特定方法:在 Win 平台上(使用 VS native 工具 cmd 或等效的环境设置工具):
for %f in (*.lib) do (dumpbin.exe /symbols %f | findstr /C:"your_symbol")
如果您无法解决 findstr 的限制,GNU grep 可能是更好的选择。
如果您安装了 UNIX 工具并且在您的 PATH
中,您也可以使用
for %f in (*.lib) do (nm -gC %f | findstr /C:"your_symbol")
如baddger964建议。
在 UNIX 系统上:
for lib in $(find . -name \*.so) ; do nm -gC $lib | grep my_symbol | grep -v " U " ; done
(在此目录中搜索 *.so
库以查找 my_symbol
;仅限外部、分解并排除 undefined symbol )
鉴于上述问题 2 是微不足道的。
关于c++ - 在哪里可以看到库包含 LLVM 的哪些部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41932428/