我在 MacOS Ventura 上的
std::experimental::simd
中链接 clang++
操作时遇到问题。这是我最小的失败:
#include <experimental/simd>
using std::experimental::simd;
int main()
{
simd<float> x;
x = -x;
}
我正在编译:
$ clang++ -std=c++20 minimal.cpp
我收到链接器错误:
Undefined symbols for architecture x86_64:
"std::experimental::parallelism_v2::simd<float, std::experimental::parallelism_v2::__simd_abi<(std::experimental::parallelism_v2::_StorageKind)1, 4> >::operator-() const", referenced from:
_main in minimal-d275bc.o
ld: symbol(s) not found for architecture x86_64
我的标准库中缺少这个吗?是否还需要包含其他链接器标志,或者什么?谢谢。
叮当版本:
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
这是因为 macOS 上的 apple clang 使用 libc++,而 chtz 的 godbolt 链接使用 clang 和 libstdc++,添加 -stdlib=libc++ 会出现相同的链接错误