error LNK2005: “class Eigen::Matrix<int,-1,-1,0,-1,-1> F“ (?F@@3V?$Matrix@H$0?0$0?0$0A@$0?0$0?0@Eige

error LNK2005: "class Lite_Sparse_Matrix * m_sparse_matrix" (?m_sparse_matrix@@3PEAVLite_Sparse_Matrix@@EA) 已经在 gauss.cpp.obj 中定义
error LNK2005: "class Eigen::Matrix<double,-1,-1,0,-1,-1> V" (?V@@3V?$Matrix@N$0?0$0?0$0A@$0?0$0?0@Eigen@@A) 已经在 main.cpp.obj 中定义
error LNK2005: "class Eigen::Matrix<int,-1,-1,0,-1,-1> F" (?F@@3V?$Matrix@H$0?0$0?0$0A@$0?0$0?0@Eigen@@A) 已经在 main.cpp.obj 中定义
error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > file" (?file@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) 已经在 main.cpp.obj 中定义

从错误提示可以看出是重定义的错误
本人遇到的问题是在不同的cpp文件中定义了一些相同名称的全局变量,毕竟只要不在函数内部的变量都是全局变量
从错误提示class Eigen::Matrix<double,-1,-1,0,-1,-1> V可以看出是重定义了一个MatrixXd类型的变量V
从错误提示class Eigen::Matrix<int,-1,-1,0,-1,-1> F可以看出是重定义了一个MatrixXi类型的变量F
从错误提示class std::basic_string<char,struct std::char_traits,class std::allocator > file可以看出是重定义了一个string类型的变量file
本人通过将上述变量分别改一个名字,即改为V1、F1、file1就解决了相应的重定义错误
对于错误提示class Lite_Sparse_Matrix * m_sparse_matrix重定义,本人发现并没有与之重名的全局变量,本人将Lite_Sparse_Matrix* m_sparse_matrix的定义由optimize_normal.h文件改为放入对应的使用m_sparse_matrix变量的optimize_normal.cpp文件就解决了问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值