c++ - 在 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]
我看过类似的帖子,但还没有解决我的问题。
解决方案
gcc
您可以尝试通过设置标志来强制使用 CMake :
cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ...
或者可能为-Wno-c++11-narrowing
cmake 提供标志。
这篇文章是通过命令行添加编译器标志的好资源。但是,如果您拥有要编译的项目,您应该只编辑 CMakeLists.txt 文件本身。
编辑:我拼错了禁用警告标志
EA:与clang
.
推荐阅读
- html - 如何以编程方式关闭 JAWS 的虚拟光标?
- c - 包含指向 void 指针的指针变量的 memcpy 结构
- oracle - PLSQL Oracle10 方言使用触发器模仿 UPSERT 功能
- html - HTML 列表在移动视图上被分解
- python - Plotly Dash Multiple Yaxis 堆叠在面板中
- javascript - 调用带有 Axios 的 JS 函数,调用时返回未定义
- apache-storm - 为什么 acked 的数字可能与 Storm Spout 上发出的数字有很大差异?
- json - 如何使用 kotlin 以可重用的方式使用关键属性比较 2 个 Json 对象文件?
- javascript - 如何访问浏览器音频流(来自浏览器的声音)。有这方面的API吗?
- android - 在 android studio 3.6.3 中创建新项目时出现问题