LLVM如何使用已编译的文件?

时间:2015-05-24 00:54:14

标签: shell llvm

我的.so文件已经创建了LLVM传递。

我还有以下脚本:

INPUT=${1}
LLVM_HOME=~/Workspace
if [ $(uname -s) == "Darwin" ]; then
    SHARED_LIB_EXT=dylib;
else
    SHARED_LIB_EXT=so;
fi

clang -emit-llvm support/${INPUT}.c -c -o support/${INPUT}.bc && \


    ${LLVM_HOME}/llvm/Debug+Asserts/bin/opt -load ../../../Debug+Asserts/lib/CS201PathProfiling.${SHARED_LIB_EXT} -pathProfiling support/${INPUT}.bc -S -o support/${INPUT}.ll && \
    ${LLVM_HOME}/llvm/Debug+Asserts/bin/llvm-as support/${INPUT}.ll -o support/${INPUT}.bb.bc && \
    ${LLVM_HOME}/llvm/Debug+Asserts/bin/lli support/${INPUT}.bb.bc

因为我已经有了我的.so文件,所以我不希望脚本重新编译我的程序,因为我已经有了编译的.so文件。

任何人都可以告诉我们可以在脚本中进行哪些更改,以便它适用于我的案例。 谢谢

1 个答案:

答案 0 :(得分:1)

注意:这个问题并不是特定于LLVM的。您正在询问如何确保一个文件比另一个文件更新( .so 更新)并且只重新执行一些文件操作

Bash允许您使用-nt之类的运算符实现此功能[请参阅this question作为示例]。

尽管如此,更好的方法是使用适当的构建系统,例如make