使用 LLVM 的 clang 替换苹果自带的有问题吗

查看 67|回复 2
作者:iqoo   
编译 WebAssembly 时发现 Mac 自带的 clang 编译器无法设置 --target=wasm32 选项,而标准的 clang 可以。
于是编译了最新的 clang 和 lld 并安装(之前已下载过 LLVM 的 git 仓库,因此直接编译):
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;lld" -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm
make install
安装位置为 /usr/local/bin/clang ,系统默认使用该版本。(原先的 clang 位于 /usr/bin/clang ,只有 160KB 。 真正的 clang 应该位于 /Library/Developer/CommandLineTools/usr/bin/clang ,有 200MB+)
虽然新版本的 clang 支持 wasm32 选项,但编译出现一大堆问题,所有头文件都找不到了~
即使编译参数里加上系统自带的头文件路径 -I /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/include/c++/v1 仍然一堆错误,例如 error: "No thread API"、fatal error: 'string.h' file not found 等等。
或者使用 LLVM 提供的 C 文件 -I llvm-project/libcxx/include 也出现一堆错误。
这是踩到什么坑了吗?

clang, usr, llvm, 编译

bruce0   
mac 上没用过 debian 上的 clang 工具集中 每个工具需要单独安装, clang,llvm, lld 还有 libC++ 这些标准库等等 你这个问题 是不是没有安装 libC++ 库导致的
mac 上的 clang 和 自己安装的 应该只有版本不同吧, clang 还有多个实现吗
Nasei   
我碰到过,然后直接在 docker 编译解决了,不想在 mac 的环境上浪费时间
您需要登录后才可以回帖 登录 | 立即注册

返回顶部