为什么rivulet算法只能ubuntu下通过编译而在vs2010下报错

12 篇文章 0 订阅
8 篇文章 0 订阅

ubuntu采用的是gcc4.8和g++4.8
windows采用的是windows10+ Visual Studio 2010 x64
1.因为ubuntu用到的是gcc和g++编译器,能够使用typeof关键字,这种关键字在vs里面没有。
https://bbs.csdn.net/topics/90337611
这个问题出现在宏定义max2和min2时。
#define max2(a,b)
({ typeof (a) _a = (a);
typeof (b) _b = (b);
_a > _b ? _a : _b; })

#define min2(a,b)
({ typeof (a) _a = (a);
typeof (b) _b = (b);
_a < _b ? _a : _b; })
2.而且rivulet的类的成员,在定义时就进行了初始化,这也是vs不能允许的。
https://blog.csdn.net/cxhply/article/details/49584005

3 .error C2440: “初始化”: 无法从“long *”转换为“__int64 *” 就是函数的参数用的V3DLONG,传入的参数是long *

也就是说long *和long long *相互转换。
4.对pow 函数的重载,没有指明数据类型。
error C2668: “pow”: 对重载函数的调用不明确
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\math.h(583): 可能是“long double pow(long double,int)”
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\math.h(535): 或 “float pow(float,int)”

Rivulet的github主页(https://github.com/RivuletStudio )中提到,
https://github.com/RivuletStudio/Rivulet-Neuron-Tracing-Toolbox/issues/21
lsqshr自己也不能在windows下面编译Rivulet_plugin.cpp。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值