the LEDAPS云掩膜模块lndcsm移植到windows过程中的一些问题

 the LEDAPS云掩膜模块lndcsm移植到windows下,代码本身改动不大,使用接口不变。依赖的库有hdf4,hdfeos,因此编译程序需要包含的静态库有:gctp.lib,hdfeos.lib,hd426m.lib,hm426m.lib。

之后进行编译,一系列报错:

1. error C2466: cannot allocate an array of constant size 0d:\Migration\lndcsm-mig\lndcsm\csm.c

    error C2133: 'b6histogram2' : unknown sized:\Migration\lndcsm-mig\lndcsm\csm.c  

    error C2057: expected constant expressiond:\Migration\lndcsm-mig\lndcsm\csm.c

  将int b6histogram2[HISTSIZ] 中HISTSIZ 直接替换成数值1024,其实在程序中已经定义HISTSIZ的值为1024了,可能是不认吧。

2. error C2065: 'S_IWUSR' : undeclared identifierd:\Migration\lndcsm-mig\lndcsm\tiff.c  

    error C2065: 'S_IWGRP' : undeclared identifierd:\Migration\lndcsm-mig\lndcsm\tiff.c

    error C2065: 'S_IRUSR' : undeclared identifier        d:\Migration\lndcsm-mig\lndcsm\tiff.c

    error C2065: 'S_IRGRP' : undeclared identifier        d:\Migration\lndcsm-mig\lndcsm\tiff.c

  该错误都源自open()函数中,第三个mode_t mode参数未定义。open()函数是LINUX、UNIX下常用的函数,需要包含sys/stat.h  sys/types.h  fcntl.h 头文件。可能是由于移植到windows 下的头文件不一致引起的吧。“对于open函数来说,第三个参数仅当创建新文件时(即 使用了O_CREAT 时)才使用,用于指定文件的访问权限位(access permission bits)。” 由于该代码并不需要创建新文件,因此可以不使用。


主要就是这两处错误。之后编译就没有问题了,运行也很正确。


---------------------------------------------------------不要被未知的恐惧打败,Just do it.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值