# DTK amdclang/amdclang++ install options Spack ROCm/CMake HIP language 可能会给 `amdclang++` 传入: ```text --gcc-toolchain=/opt/dtk/llvm ``` 但 `/opt/dtk/llvm` 是 DTK LLVM/DCC 前缀,不是系统 GCC toolchain 前缀,可能导致 host 侧 C++ 标准库头文件查找失败,例如: ```text fatal error: 'cmath' file not found ``` 这里给出两种修复方案。 ## 方式一:安装 wrapper 下载 `dtk-amdclang-wrapper`,然后安装: 安装命令: ```sh chmod +x ./dtk-amdclang-wrapper rm -f /opt/dtk/llvm/bin/amdclang /opt/dtk/llvm/bin/amdclang++ install -m 0755 ./dtk-amdclang-wrapper /opt/dtk/llvm/bin/amdclang install -m 0755 ./dtk-amdclang-wrapper /opt/dtk/llvm/bin/amdclang++ ``` 可选环境变量: ```sh export DTK_AMDCLANG_REAL=/opt/dtk/llvm/bin/dcc export DTK_BAD_GCC_TOOLCHAIN=/opt/dtk/llvm export DTK_GCC_TOOLCHAIN=/usr ``` 适用场景:需要兼容 Spack ROCm/CMake 生成的 `--gcc-toolchain=/opt/dtk/llvm`,并修复 `` 等 C++ 标准库头文件查找问题。 ## 方式二:安装 symlink 使用指向 `dcc` 的简单 symlink: ```sh rm -f /opt/dtk/llvm/bin/amdclang /opt/dtk/llvm/bin/amdclang++ ln -s /opt/dtk/llvm/bin/dcc /opt/dtk/llvm/bin/amdclang ln -s /opt/dtk/llvm/bin/dcc /opt/dtk/llvm/bin/amdclang++ ``` 适用场景:构建系统不会传入错误的 `--gcc-toolchain=/opt/dtk/llvm`。