编译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,如下图所示:

编译PROJ4_第1张图片

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

      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兼容工具命令提示),如下图所示:

编译PROJ4_第2张图片

4、vs2013调用

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

5、测试

#include
#include
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");
}



你可能感兴趣的:(VS)