FreeBSD系统中clang无法找到Standard C++库头文件问题求助
问题原因与解决步骤
- 首先纠正编译命令错误:你使用的
cpp是C预处理器工具,并非C编译器。FreeBSD体系下默认搭载的Clang C编译器对应的调用命令为c++或clang++,你可以替换成如下命令执行编译:
c++ -v test.cpp -o test
- 其次解决C标准库缺失问题:你使用的TwinCAT/BSD是面向工业场景裁剪的定制化FreeBSD发行版,默认未预装C标准库的头文件及关联库文件,所以会提示找不到
iostream头文件。你可以通过包管理器安装缺失组件:
优先安装对应版本的C++标准库开发包:
如果上述包不存在,可直接安装对应版本的完整LLVM套件:pkg install libcxx libcxx-develpkg install llvm10 - 最后说明locate无结果的原因:你之前执行查找时拼写错误,将
iostream误写为iostrem,才会返回空结果。安装完组件后可重新执行locate iostream确认头文件存在,也可直接访问/usr/include/c++/v1/目录查看对应文件。
执行完上述操作后重新运行编译命令即可正常生成可执行文件,运行./test就能看到输出结果。
内容的提问来源于stack exchange,提问作者koverskeid
相关产品推荐
相关产品推荐

