这个是2012年左右放在百度空间的,谁知百度空间关闭。。。转移到博客园。

最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富。

HuCal是将LEDAPS项目中的TM/ETM+大气校正流程系列算法中的辐射定标模块由linux系统移植到windows下的产物,代码本身改动不大,使用接口不变。

包含文件:

HuCal.exe

geotiff.dll

hd423m.dll

hm423m.dll

命令行调用示例:HuCal.exe空格D:\LEDAPS\lndcal.L5014033_03320060801.txt

遇到的问题及解决方案:

出现问题1:无法打开文件"LIBC.lib"。

解决:在“项目”-->“配置属性->链接器->输入->忽略特定库”后填入“LIBC.lib ”。

LIBC.lib介绍   google一下,libc.lib原来是被遗弃的可怜家伙。MSDN Labs: What''s New in Visual C++ 2005 Quote: The single-threaded CRT libraries, , msvcrt.lib, and msvcrtd.lib, . Use the multi-threaded CRT libraries. The /MD, /ML, /MT, /LD (Use Run-Time Library) compiler flag is no longer supported. Non-locking versions of some functions have been added in cases where the performance difference between the multithreaded code and the single-threaded code is potentially significant. 要解决问题的话,只要在链接设置那里忽略它就没问题了。下面再列点抄点总结: ?Run-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。 C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分源代码。 C Run-Time Libraries有静态库版本,也有动态链接库版本;有单线程版本,也有多线程版本;还有调试和非调试版本。 ?动态链接库版本:/MD Multithreaded DLL 使用导入库MSVCRT.LIB/MDd Debug Multithreaded DLL 使用导入库MSVCRTD.LIB ?静态库版本:/ML Single-Threaded 使用静态库LIBC.LIB/MLd Debug Single-Threaded 使用静态库LIBCD.LIB/MT Multithreaded 使用静态库LIBCMT.LIB/MTd Debug Multithreaded 使用静态库LIBCMTD.LIB 若要使用此运行时库请忽略这些库 单线程 (libc.lib) libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib 多线程 (libcmt.lib) libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib 使用 DLL 的多线程 (msvcrt.lib) libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib 调试单线程 (libcd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib 调试多线程 (libcmtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib 使用 DLL 的调试多线程 (msvcrtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib

所以最后忽略的库包括:libc.lib;libcmtd.lib

出现问题2:代码中使用linux平台的头文件"unistd.h"。

解决:使用#include "unistd.h"替代#include <unistd.h>

并直接添加unistd.h文件到vs2005项目中。文件内容如下:

#ifndef _UNISTD_H

#define _UNISTD_H    1

/* This file intended to serve as a drop-in replacement for

*  unistd.h on Windows

*  Please add functionality as neeeded

*/

#include <stdlib.h>

#include <io.h>

#include "getopt.h" /* getopt from: http://www.pwilson.net/sample.html. */

#include <process.h> /* for getpid() and the exec..() family */

#define srandom srand

#define random rand

//const W_OK = 2;// 因为重复定义而注释掉

//const R_OK = 4;

#define access _access

#define ftruncate _chsize

#define ssize_t int

#define STDIN_FILENO 0

#define STDOUT_FILENO 1

#define STDERR_FILENO 2

/* should be in some equivalent to <sys/types.h> */

typedef __int8            int8_t;

typedef __int16           int16_t;

typedef __int32           int32_t;

typedef __int64           int64_t;

typedef unsigned __int8   uint8_t;

typedef unsigned __int16  uint16_t;

typedef unsigned __int32  uint32_t;

typedef unsigned __int64  uint64_t;

#endif /* unistd.h  */

文件中包含的getopt.h文件从网站 http://www.pwilson.net/sample.html. 下载。

这个解决方案是网上有人针对linux移植到windows所专门重写的代码,用的不多,需要验证。

出现问题3:代码中使用的相关库在linux平台与windows平台是不同的,需要逐个替换,主要是HDF4库、geotiff库与HDF-EOS库。

解决:

包含的静态库有:

geotiff_i.lib

libtiff_i.lib

ws2_32.lib

gctp.lib

hdfeos.lib

hd423m.lib

hm423m.lib

另外程序执行时需要动态库:geotiff.dll;hd423m.dll;hm423m.dll

出现问题4:代码执行过程内存一直在涨啊?最后能涨到300,原因不明,是代码本身的错误还是我移植的错?需要以后再仔细研究。

LEDAPS1.3.0版本移植到windows平台----HuCal定标模块的更多相关文章

  1. LEDAPS1.3.0版本移植到windows平台----HuSr大气校正模块

    这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. HuSr是将LEDAPS项目中的TM/ET ...

  2. LEDAPS1.3.0版本移植到windows平台----HuPm参数初始化模块

    这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. LEDAPS的调用顺序是:HuPm--&g ...

  3. LEDAPS1.3.0版本移植到windows平台----HuCsm云掩膜模块

    这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. HuCsm是将LEDAPS项目中的TM/E ...

  4. windows平台安装php_memcache模块

    要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位);php-5.3; memcached-1.2.6 下载地址 环境下载 什么是PHP Memcache模块 Memcach ...

  5. windows平台python svn模块的一个小 bug

    环境 编程语言版本:python 2.7 操作系统:win10 64位 模块名:svn svn  checkout时报错 File "D:\Python27\lib\site-package ...

  6. Java (JDK 多版本切换)—— Windows平台

    0. 背景 常常在不同的应用中需要用到不同版本的Java ,需要切换不同JAVA_HOME. 1. 方法 Step 1. 安装不同版本的JDK(JRE),最好都安装在一个Java目录分支下.例如: S ...

  7. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  8. 移植TensorFlow到Windows平台

    2015年11月,Google宣布开源旗下机器学习工具TensorFlow,引发业界热潮.TensorFlow原生支持*unix系和安卓平台,但并不提供对Windows平台的支持.如果想在Window ...

  9. 将Linux代码移植到Windows的简单方法

    一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如果想要使用完整的代码,就要做移植工作.因为C/C ...

随机推荐

  1. vs2017使用GitHub插件发布项目到github

    几乎每天都从博客园获取新知识,今天才发现我竟然没有博客园的账号,你说气人不.2008年10月就开始在CSDN上写记录,因为CSDN做记录还可以,但记录整个项目就有些捉襟见肘,后来就写Demo做备份到云 ...

  2. ES6常用特性总览

    以前看过一遍es6,今天面试时被问到了一个很简单的es6特性,竟然没回答上来,特来重温一下es6,做个总结性笔记. 一.什么是es6 es6是新版本JavaScript语言的标准,在2015年6月发布 ...

  3. 浅谈模块系统与 ABP 框架初始化

    在 ABP 框架当中所有库以及项目都是以模块的形式存在,所有模块都是继承自AbpModule 这个抽象基类,每个模块都拥有四个生命周期.分别是: PreInitialze(); Initialize( ...

  4. VueJs(11)---vue-router(命名路由,命名视图,重定向别名,路由组件传参)

    vue-router 上篇文章讲了第一篇vue-router相关文章,文章地址:VueJs(10)---vue-router(进阶1) 一.命名路由 有时候,通过一个名称来标识一个路由显得更方便一些, ...

  5. Linux编程 15 文件权限(用户管理 useradd,userdel,usermod,passwd,chpasswd,chsh, chfn,chage)

    一. 概述  在上一篇中讲到了与用户账户有关的二个文件passwd和shadow,以及useradd工具的介绍.这篇接着讲useradd+参数,删除用户,修改用户的演示. 1. 删除用户userdel ...

  6. mysql 开发进阶篇系列 9 锁问题 (Innodb 行锁实现方式)

    一.概述 Innodb 行锁是通过给索引上的索引项加锁来实现的.这一点与(oracle,sql server)不同后者是通过在数据块中对相应的数据行加锁.这意味着只有通过索引条件检索数据,innodb ...

  7. 用js如何获取file是否存在

    其实注意点就可以知道了. 举个例子 firebug看出这代码: <div id="SWFUpload_0_0" class="uploadify-queue-ite ...

  8. sudo的使用和配置

    1 sudo是什么 Sudo是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像 ...

  9. Java设计模式之《模板模式》及使用场景

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9558825.html 模板模式,顾名思义,就是通过模板拓印的方式. 定义模板,就是定义框 ...

  10. centos7安装遇到的坑

    1.安装中遇到what is the location of the gcc program on your machine 直接输入 no.意思就是跳过gcc的安装了.但是系统虽然安装了vmware ...