vs2012使用eigen提示rint不是globalnam

vs2012使用eigen提示rint不是globalnam,第1张

可能你在其他的地方有些格式你没法看到的,比如说 隐形空格!!!

我一般开发,要是需要其他代码 那么我会把复制的代码先复制到记事本里面,因为记事本可以把任何格式去除掉,任何在复制的VS里面,这样就很干净了。省的麻烦。

你说的在据我1年接触VS 没有这个功能。

有问题在讨论。

选取一个vs2013的解决方案文件。sln,以文本文档方式打开它。(我用的是sublime text 2,我认为是款代替记事本的不错工具,性感而小巧。有人从Notapad+转为用它,自有其价值吧。)

在文件开头我们可以看到一些关键信息:

Format Version 12.00

VisualStudioVersion = 12.0.21005.1

MinimumVisualStudioVersion = 10.0.40219.1

表明该。sln生成的格式版本是12.00(vs2013),vs版本是12.0.21005.1(vs2013),最小兼容版本是10.0.40219.1(vs2010)。

那也许把该解决方案改成10.0.40219.1以上都行吧?

【版本区别】

像我这样的新手请注意这里,Version 12.00意味着版本为vs2013而非vs2012,本文末最后已总结了vs版本中的该现象。下一步中改Format Version 为11.00而非10.00

(2)修改。sln文件。

(3)重新打开

用VS2010打开修改后的解决方案文件,成功打开。

(4)编译

我想起vs2012和vs2010的平台工具集不一致,vs2012是v110,vs2010是v100,vs2013则是v120。我想先不去项目文件里查看,也许在加载解决方案的时候vs已经重置了平台工具集?于是尝试①直接编译。

编译失败,因为结果平台工具集未重置,本机上没有vs2013,找不到v120的平台工具集。同时,注意到,有“项目文件包含ToolsVersion=”12.0“ 设置……将项目视为具有ToolsVersion=”4.0“ 设置”。这似乎是。Net的工具版本号,不修改的话会自动兼容。

③编译通过,运行成功。同时,ToolsVersion的版本号是被视为4.0了。

④去查找对应ToolsVersion的项目文件,修改之。

MatrixXd M = MatrixXd::Zero(50, 50)

cout <<M.block(2, 3, 5, 6) <<endl //指的是M矩阵从(2,3)位置开始,下数5个元素,右数6个元素

M.block(a, b, m ,n)指的是从下标(a,b)的元素开始,向下m个元素,向右n个元素。

注意,这两种转换方式都是浅拷贝,改变源数据的值拷贝后对象的值也会改变。

Eigen重载了<<,直接输出到文件即可。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11820358.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存