首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:使用cmake时不合时宜的老式基类初始化器。

错误:使用cmake时不合时宜的老式基类初始化器。
EN

Stack Overflow用户
提问于 2022-05-02 03:46:32
回答 1查看 55关注 0票数 0

我试图在存储库链接中运行代码。

这里是Google链接,它安装了运行存储库所需的所有库。- 链接

在链接中,有两种方法我已经建立了这个项目。一种是使用qmake,另一种是使用cmake。他们都给了我同样的错误。

我寻找问题中的错误,但给了我一些7岁的答案。考虑到存储库中的代码构建于2020年,我怀疑代码中存在问题。我想问题可能是gcc/g++的版本。

版本:

GCC/G++:7.5。

抛出错误的代码:

代码语言:javascript
复制
#define len(p) (std::sqrt(p.x * p.x + p.y * p.y))

上述代码出现在src/gorutils.h第31行中。

这段代码是否遵循一些特定的C++版本,如C++-11、C++-14等等?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-02 03:52:41

您定义了一个名为len()的前处理器宏。从GCC错误消息中可以看出,文件/usr/include/mlpack/core/data/serialization_shim.hpp中包含代码len(len),这大概是为了初始化类的len成员。但是,预处理器正在将代码插入其中并导致语法错误。

len重命名为不太可能在其他代码中使用的东西,或者确保只在包含所有第三方头文件之后才定义它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72082143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档