CombineCpp.sh 982 B

12345678910111213141516171819
  1. #!/bin/bash
  2. # 获取脚本所在目录
  3. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
  4. # 切换到项目根目录
  5. cd "$SCRIPT_DIR/../.."
  6. # 确保 combine_output/cpp 目录存在
  7. mkdir -p combine_output/cpp
  8. # 为C++项目调整命令
  9. clang++ -S -emit-llvm -std=c++11 data/cpp/ProjectA.cpp -o combine_output/cpp/projectA_cpp.ll -DPROJECTA_MAIN -Dmain=projectA_main
  10. clang++ -S -emit-llvm -std=c++11 data/cpp/ProjectB.cpp -o combine_output/cpp/projectB_cpp.ll -DPROJECTB_MAIN -Dmain=projectB_main
  11. llvm-as combine_output/cpp/projectA_cpp.ll -o combine_output/cpp/projectA_cpp.bc
  12. llvm-as combine_output/cpp/projectB_cpp.ll -o combine_output/cpp/projectB_cpp.bc
  13. llvm-link combine_output/cpp/projectA_cpp.bc combine_output/cpp/projectB_cpp.bc -o combine_output/cpp/combined_cpp.bc
  14. llvm-dis combine_output/cpp/combined_cpp.bc -o combine_output/cpp/combined_cpp.ll
  15. echo "C++ projects combined successfully."
  16. echo "Combined LLVM IR is at: combine_output/cpp/combined_cpp.ll"