编译PROJ4

一、编译PROJ4

       PROJ4的最新版本是4.8,官网地址为:http://trac.osgeo.org/proj/。从官网下载PROJ4的源代码,解压到文件夹中,如F:\Work\3rdPart\proj-4.8.0。

1、正常编译RELEASE版本

      打开VS2008的命令行工具,然后将其工作目录切换到F:\Work\3rdPart\proj-4.8.0,如下图所示:


      如果不进行输出目录设置的话,就直接在命令行中依次输入下面的命令回车即可:

      nmake /f makefile.vc install-all

      等待编译完成后,会默认值C盘的根目录下,创建PROJ文件夹,里面有四个文件夹,分别是bin,lib,include以及share四个文件夹,其中include和lib是用来做二次开发使用,bin存放的是dll和exe文件,share里面存储的是PROJ4所定义的一些投影文件等,在发布程序的时候,share文件夹需要一同进行发布,否则在做投影转换的时候可能因为找不到其中的文件而导致转换失败。

2、编译DEBUG版本

      在有的时候需要调试PROJ4的源代码,那么需要编译DEBUG版本,编译DEBUG版本和RELEASE版本一样,只不过在是最后输入命令的时候,在后面加上DEBUG=1即可,完整命令如下:

      nmake /f makefile.vc clean

      nmake /f makefile.vc install-all DEBUG=1

      等编译结束后,将src目录下的pdb等调试文件拷贝到你自己的工程输出目录中即可。nmake /f makefile.vc clean,这句的目的是为了清理之前编译生成的临时文件,如果之前没有编译过,可以不用。

3、编译X64版本

      有时候需要在64位系统上运行,为了高效,需要编译X64的版本,编译X64的版本和上面的基本一样,只不过是在打开VS2008的命令行的时候,要使用X64兼容工具命令提示(vs2013也是用X64兼容工具命令提示),如下图所示:

4、vs2013调用

      将生成的文件中include和lib库分别包含到工程文件中,并在链接->输入中添加proj.lib和proj_i.lib,并且把bin下的dll文件拷到工程目录下面

5、测试

#include <proj_api.h>
#include <iostream>
int main(int argc, char **argv)
{
projPJ pj_merc, pj_latlong;
double x, y;
if (!(pj_merc = pj_init_plus("+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs")))
exit(1);
if (!(pj_latlong = pj_init_plus("+proj=longlat +datum=WGS84 +no_defs")))
exit(1);
x = -9.866554;
y = 7.454779;
x *= DEG_TO_RAD;
y *= DEG_TO_RAD;
pj_transform(pj_latlong, pj_merc, 1, 1, &x, &y, NULL);
std::cout.precision(12);
std::cout << "(" << x << " , " << y << ")" << std::endl;
//exit(0);
system("pause");
}



  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值