解决升级 Mojave 后 g++ 找不到头文件的问题

Mac 升级 Mojave (10.14) 之后,尝试编译以前编译通过的 C++ 项目,g++-6 提示找不到各种头文件。例如有如下报错。

1
2
3
4
./third_party/catch.hpp:69:33: fatal error: TargetConditionals.h: No such file or directory
# include <TargetConditionals.h>
^
compilation terminated.

经查,这是因为 macOS 在升级过程中,移除了过时的开发者工具。(不得不说这种无声移除的设计非常傻屄)解决的办法也很简单,重新安装 Command Line Tools 及其头文件包即可。

1
2
xcode-select --install
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

参考:https://forums.developer.apple.com/thread/104296

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。