首页 > 解决方案 > 在 OSX 中使用 Make for C++ 代码构建错误

问题描述

我一直试图在 OSX 中编译一个存储库,但没有成功。

存储库使用 C++。当我使用cmake然后make在 Ubuntu 中,一切都很好。即使在带有 MinGW 的 Windows 上,我也能够构建代码。

但是,在 OSX 11.0.1 Big Sur 中,我没有收到任何错误cmake,但make失败了。我已经安装了最新版本的 Xcode,包括命令行。

这是我收到的错误:

error: 
      non-constant-expression cannot be narrowed from type 'long' to
      '__darwin_suseconds_t' (aka 'int') in initializer list [-Wc++11-narrowing]

我看过类似的帖子,但还没有解决我的问题。

标签: c++xcodemacos

解决方案


gcc您可以尝试通过设置标志来强制使用 CMake :

cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ...

或者可能为-Wno-c++11-narrowingcmake 提供标志。

这篇文章是通过命令行添加编译器标志的好资源。但是,如果您拥有要编译的项目,您应该只编辑 CMakeLists.txt 文件本身。

编辑:我拼错了禁用警告标志

EA:与clang.


推荐阅读