我试图在存储库链接中运行代码。
这里是Google链接,它安装了运行存储库所需的所有库。- 链接
在链接中,有两种方法我已经建立了这个项目。一种是使用qmake,另一种是使用cmake。他们都给了我同样的错误。
我寻找问题中的错误,但给了我一些7岁的答案。考虑到存储库中的代码构建于2020年,我怀疑代码中存在问题。我想问题可能是gcc/g++的版本。
版本:
GCC/G++:7.5。
抛出错误的代码:
#define len(p) (std::sqrt(p.x * p.x + p.y * p.y))上述代码出现在src/gorutils.h第31行中。
这段代码是否遵循一些特定的C++版本,如C++-11、C++-14等等?
发布于 2022-05-02 03:52:41
您定义了一个名为len()的前处理器宏。从GCC错误消息中可以看出,文件/usr/include/mlpack/core/data/serialization_shim.hpp中包含代码len(len),这大概是为了初始化类的len成员。但是,预处理器正在将代码插入其中并导致语法错误。
将len重命名为不太可能在其他代码中使用的东西,或者确保只在包含所有第三方头文件之后才定义它。
https://stackoverflow.com/questions/72082143
复制相似问题