移植过程主要是参考http://hi.baidu.com/akaishi/item/d89fcfdcdcc236d9241f4079,在此感谢此博文的博主.然而所遇到的问题并不完全与此博文所提到的一样。主要的问题有以下几点:
1)该添加的库还是都要添加的,像geotiff,libtiff,jpeg,szib,zlib,hdf,hdfeos等这些库,其中jpeg、szib、zlib是geotiff、libtiff、hdf、hdfeos库编译所依赖的。其中已编译好的hdf、hdfeos库已上传了,参见http://download.csdn.net/detail/journey27/7161853 ;http://download.csdn.net/detail/journey27/7161829 。
2)所依赖的库都编译添加好以后,进行编译,提示找不到‘sys\mman.h’,原来是linux下的一个头文件,抱着试试的态度,直接注释掉,再次编译,该错误没再出现。
3)接着就是一堆link error, 主要是2001和2005.
link error 2001提示的是error LNK2001: unresolved external symbol _strncasecmp in param.obj。goole了一下strncasecmp这个函数,发现是Linux下的一个函数,将其换成windows下C语言的相对应得函数strncmp即可。
link error 2005提示的是error LNK2005: _W_OK already defined in cal.obj input.obj
error LNK2005: _R_OK already defined in cal.obj input.obj
都是W_OK,R_OK被多次定义的问题,搜索了一下这两个变量,结果只有"unistd.h"文件下有这两个变量。于是上网goole,根据各种解决办法都解决不了,捣腾了一天都没结果,最后又是抱着试试的态度,直接将“unistd.h”中定义的W_OK,R_OK注释掉。然后神奇的事儿发生了,编译通过了。在此还是很担心会有其他的问题。最后拿数据运行试试了,结果很正确。或许是LINUX下的“unistd.h”在windows下用的本身就不多吧,具体原因还有待研究。
4)需将数据放在.exe文件下才可以正确运行,对此非常不方便,关于路径这方面的代码,将在后续进行修改。
有研究大气校正的童鞋们,可以互相交流哦。每次问题的解决方法都有点儿让我惊奇,很简单,却花了很多时间,所以写出来,希望能帮到大家,节省一些时间。(*^__^*) 嘻嘻……
---------------------------------------------------------不要被未知的恐惧打败,Just do it.