免责声明 - 我对 C++ 以及该语言在编译/链接方面的工作方式完全陌生。使用 MacOS Mojave。
对于学校课程,我们必须使用 g++ 编译器来编译我们的 c++ 项目。 G++看起来已经安装成功了; g++ -v 产生以下输出:
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin17.5.0/8.1.0/lto-wrapper
Target: x86_64-apple-darwin17.5.0
Configured with: ../gcc-8.1.0/configure --enable-languages=c++,fortran
Thread model: posix
gcc versie 8.1.0 (GCC)
我创建了我的第一个“hello world”程序:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
当我尝试编译此代码(使用'g++ file.cpp)时,提示以下终端输出:
In file included from /usr/local/include/c++/8.1.0/bits/postypes.h:40,
from /usr/local/include/c++/8.1.0/iosfwd:40,
from /usr/local/include/c++/8.1.0/ios:38,
from /usr/local/include/c++/8.1.0/ostream:38,
from /usr/local/include/c++/8.1.0/iostream:39,
from ex1.cpp:1:
/usr/local/include/c++/8.1.0/cwchar:44:10: fatale fout: wchar.h: No such file or directory
#include <wchar.h>
^~~~~~~~~
compilation ended.
上述文件夹中确实不存在 whcar.h 文件。经过一番挖掘,我在以下文件夹中找到了 whcar 文件:
/Library/Developer/CommandLineTools/usr/include/c++/v1
不幸的是,我有点迷失,不知道自己在说什么,因为一切对我来说都是新的。
如果有人能指导我正确的方向,我将不胜感激。
亲切的问候,
泰门。
对我来说,重新安装 Xcode 命令行工具和 g++ 解决了同样的问题:
xcode-select --install
brew reinstall gcc
最后一行假设您已经安装了 homebrew。
我刚刚发现解决这个问题的最简单方法是将缺少的头文件下载到编译器文件夹中。它会解决一切。
我最近也经历过类似的行为。
我使用 CMakeFiles.txt 进行项目配置。运行 cmake 本身不会报告错误,但编译(ninja、gnu make)本身会报告错误。
我尝试了各种建议的解决方案,所有这些都工作了一段时间 - 直到我删除了
build
文件夹。
奇怪的模式是再次运行 cmake(第二次,第一次运行或本次运行没有错误)修复了问题。