【发布时间】:2017-04-27 20:11:40
【问题描述】:
clang 支持插件,这个概念通常用于构建静态分析等工具。
为了开始使用它,我使用了this example,它打印了目标 cpp 文件中存在的所有函数名称。
我编译了运行以下插件的插件:
clang++ -v -std=c++11 PrintFunctionNames.cpp \
$(llvm-config --cxxflags --ldflags) \
-o plugin.so -shared -Wl,-undefined,dynamic_lookup
然后“按本书”运行它:
clang++ \
-c main.cpp \
-Xclang -load \
-Xclang $PWD/plugin.so \
-Xclang -plugin \
-Xclang print-fns
它工作得很好:它打印 main.cpp 中的函数名
然后退出(由于 -c 标志而不编译 main.cpp)。
我想做的是打印所有函数名并将 main.cpp 编译成可执行文件。
我尝试删除 -c 标志,但得到了:
/usr/bin/ld: cannot find /tmp/main-284664.o: No such file or directory
我做错了什么?
【问题讨论】: