MSYS2上使用GCC 8.2.1的本本汇编误差
Eigen compilation error with gcc 8.2.1 on MSYS2
我们面临着针对eigen 3.3.7(以及较旧版本)的错误,该错误针对MSYS2提供的最新版本的GCC 8.2.1。奇怪的是,这仅在同一软件包的最新版本(mingw-w64-x86_64-gcc
8.2.1)中发生。
- 8.2.1 20181123-1:Fine
- 8.2.1 20181130-1:错误
- 8.2.1 20181207-1:错误
错误是:
In file included from C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/SparseCore:50,
from C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/Sparse:26,
from C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/Eigen:2,
from src/registration/transform/search.h:21,
from src/registration/transform/initialiser_helpers.cpp:20:
C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/src/SparseCore/SparseBlock.h: In member function 'Eigen::internal::sparse_matrix_block_impl<SparseMatrixType, BlockRows, BlockCols>::BlockType& Eigen::internal::sparse_matrix_block_impl<SparseMatrixType, BlockRows, BlockCols>::operator=(const BlockType&)':
C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/src/SparseCore/SparseBlock.h:216:33: error: expected primary-expression before '>' token
return operator=<BlockType>(other);
^
我认为这是MSYS2提供的GCC软件包中的一个错误(据我所知,SparseBlock.h
文件已经有一段时间没有更改)。是否基于相同的源代码构建不同的GCC?知道问题可能是什么?
编辑:这是MCVE:
test.cpp:
#include <Eigen/Eigen>
int main () { return 0; }
用G 8.2.1编译(版本8.2.1 20181130-1或更新 - 较旧版本没有错误):
$ g++ $(pkg-config --cflags eigen3) test.cpp -o test
In file included from C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/SparseCore:50,
from C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/Sparse:26,
from C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/Eigen:2,
from test.cpp:1:
C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/src/SparseCore/SparseBlock.h: In member function 'Eigen::internal::sparse_matrix_block_impl<SparseMatrixType, BlockRows, BlockCols>::BlockType& Eigen::internal::sparse_matrix_block_impl<SparseMatrixType, BlockRows, BlockCols>::operator=(const BlockType&)':
C:/Users/donald/msys64/mingw64/include/eigen3/Eigen/src/SparseCore/SparseBlock.h:216:33: error: expected primary-expression before '>' token
return operator=<BlockType>(other);
^
进一步研究表明这确实是GCC错误。我已经在GCC Bugzilla上报告了这一点,我将关闭此线程。谢谢!
相关文章:
- 为什么在浮点中从大到小会引入更多的误差
- 为什么我的C++程序的程序集输出充满了 .ascii,没有汇编代码?
- 在 emscripten 网页汇编正在运行期间更新进度条?
- 为什么我们不编写可以处理C++标识符的汇编器和链接器?
- 在什么情况下,我想在 C/C++ 代码中使用内联汇编代码
- 为什么 memcpy() 和其他类似的函数使用汇编?
- [[可能]]和[[不太可能]]影响程序汇编的简单示例?
- 基于相邻元素 c++ 的分段误差范围的循环
- 在Cython中使用移动方法时的汇编误差
- typedef void汇编误差(是初始化的(使用dectType))
- C (MACOS)的汇编误差
- 使用C 中的constexpr汇编误差
- MSYS2上使用GCC 8.2.1的本本汇编误差
- 使用MPIC 误差进行C 汇编
- 传递variadic arg to模板函数时的汇编误差
- 汇编误差:从CSV转换为LIBSVM格式
- variadic模板递归返回类型扣除汇编误差
- 使用模板和lambda的汇编误差与clang
- Boost ::几何3D多边形交叉汇编误差
- 无序的一组对,汇编误差