VS2015编译GEOS的debug和release版本

目前GEOS最新的3.7.1版本支持camke进行编译。经过尝试发现通过cmake生成的工程在vs2015下面编译的时候还是存在问题,而且在中文网上也没找到解决方案。

所以还是采用了nmake进行编译。解压出geos-3.7.1文件夹,双击运行其中的autogen.bat。

在目录中找到nmake.opt,这个文件控制着nmake编译的一些参数。记事本打开,找到如下片段:

######################################################################
# Set WIN64=YES if you are building for 64-bit windows (x64).
# Alternatively, pass WIN64=YES as NMAKE command line argument.
######################################################################
!IFNDEF WIN64
WIN64 = NO
!ENDIF

通过注释知道这里控制编译出的是64位版本还是32位版本,我这里用的64版本,所以改为WIN64=YES。

同样,再次找到如下片段:

# Set BUILD_DEBUG to YES if you want to make debug build
# and to prepare not optimized binaries.

!IFNDEF BUILD_DEBUG
BUILD_DEBUG = NO
!ENDIF

同样通过注释知道这里控制编译出的是Release版本还是debug版本,我这里用的debug版本,所以改成BUILD_DEBUG=YES。

修改好配置之后,找到VS2015的本机工具命令提示符,CD到geos-3.7.1文件夹,输入命令:

nmake /f makefile.vc

然后等待编译完成就可以了,最终的输出结果在geos-3.7.1文件夹的src文件夹里面。

如果需要Release版本,那么可以修改对应的配置用同样的方式编译一边就可以了,它们是以_d后缀来区分的。

原文地址:https://www.cnblogs.com/charlee44/p/10346863.html

时间: 2024-10-05 11:55:33

VS2015编译GEOS的debug和release版本的相关文章

Debug与Release版本区别

Debug与Release版本区别 Debug版本就是调试版本,Visual C++ 6.0默认的就是Debug版本.在Debug版本中,可以使用单步执行.跟踪等功能,但其生成的可执行文件比较大,代码运行比较慢.Release版本就是发行版本,其运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能.     还有一点,Release版本的exe文件链接的目标是标准的MFC DLL(Use MFC in a shared or static dll).比如MFC42.DLL.这些DLL在

VC下Debug 和 Release 版本区别

Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来.当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等.习惯上,我们仍然更愿意使用VC已经定义好的名称.     Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M).至于是否需要DLL支持,主要看你采用的编译选项.如果是基于 ATL的,则Debug

Debug与Release版本的区别详解

原文链接 Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来.当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等.习惯上,我们仍然更愿意使用VC已经定义好的名称.     Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M).至于是否需要DLL支持,主要看你采用的编译选项.如果是基于ATL的,则D

VS中 Debug和Release版本的区别

VS Debug和Release版本的区别 1. 变量.大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过).这样就明确了,如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致:用作数组下标将会使程序崩溃:更加可能是造成其他变量的不准确而引起其他的错误.所以在声明变量后马上对其初始化一个默认的值是最简单有效的办法

Debug与Release版本的区别

Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来.当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等.习惯上,我们仍然更愿意使用VC已经定义好的名称. Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M).至于是否需要DLL支持,主要看你采用的编译选项.如果是基于 ATL的,则Debug和Rel

iOS开发debug跟release版本NSLog屏蔽方法

简单介绍以下几个宏: 1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持).宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错. 2) __FILE__ 宏在预编译时会替换成当前的源文件名 3) __LINE__宏在预编译时会替换成当前的行号 4) __FUNCTION__宏在预编译时会替换成当前的函数名称 1. 在***-Prefix.pch里

爱上MVC~Web.Config的Debug和Release版本介绍

回到目录 对于web.config来说,我们不会陌生,主要对站点进行相关参数的配置,当它被修改后,IIS里对应的应用程序池会被重启,而对于config里的一些配置我们一般使用比较多的是数据连接串connectionString,配置串appSettings,友好提示控制customErrors等,而今天我们要说的是配置文件config里的两种模式Debug和Release. 一般地,我们一个网站至少会对应有测试环境和生产环境两种,有的可能更多,而如果有两种的话我们的配置文件可以根据debug和r

VS编译静态库 .lib 其中Release 版本比Debug版本要大好多原因

如果工程代码使用了: 把此选项关闭即可减少库大小不少:

VS2015编译gdal库 debug

E:\Visual Studio 2015\install\VC>E:\Visual Studio 2015\install\VC>E:\Visual Studio 2015\install\VC>E:\Visual Studio 2015\install\VC>E:\Visual Studio 2015\install\VC>E:\Visual Studio 2015\install\VC>cd E:\OpenSourceGraph\gdal_2019_1_9\gda