VS2013编译32位与36位的sqlite,再CMAKE生成osgearth加载mbtiles文件需要的osgdb_osgearth_mbtiles.dll

来源:互联网 发布:淘宝发布宝贝上限 编辑:程序博客网 时间:2024/05/24 07:23

用osgearth加载mbtiles类型数据,首先要检查自己有没有osgdb_osgearth_mbtiles.dll这个库,没有的话就要先编译。

首先在这个网站上下载sqlite3的源码。

http://www.sqlite.org/download.html


以及sqlite-amalgamation-3200100.zip.

我是想要编译32位和64位的所以两个都下载了,实际上只需要下载自己需要的一个就可以了

sqlite3(32位)编译:

1.VS新建项目,选择Win32工程,再选择DLL,空项目。

2.把解压侯的所有文件都放进工程目录下,在工程头文件中添加sqlite3.h, 在源文件中添加sqlite3.c,sqlite3.def.

3.工程配置管理器改成debug,Win32

4.属性-》常规-》目标文件名  改成sqlite3

5.属性-》c/c++->预处理器-》预处理定义    添加SQLITE_ENABLE_COLUMN_METADATA和SQLITE_ENABLE_RTREE

6.属性-》链接器-》输入-》预定义文件   添加sqlite3.def

7.点击生成即可

注意,要生成release版本的话只要在属性-》常规-》配置类型-》选择lib ,在改成Win32,Release就可以了。


sqlite3(64位)编译:

release版本:

1.VS新建项目,选择Win32工程,再选择DLL,空项目。

2.把解压侯的所有文件都放进工程目录下,在工程头文件中添加sqlite3.h,sqlite3ext.h  在源文件中添加sqlite3.c.

3.工程配置管理器改成release,x64

4.属性-》常规-》目标文件名  改成sqlite3

5.属性-》c/c++->预处理器-》预处理定义    添加SQLITE_API=_declspec(dllexport)

6.点击生成即可

debug版本:

1.首先把工程配置器改成debug,x64

2.在上面第二步的基础上在源文件中添加sqlite3.def

3.属相-》常规-》配置类型  改成lib

4.点击生成即可。


至此我们就已经得到了sqlite3.lib, sqlite3d.lib, sqlite3.dll sqlite3d.dll


放在CMAKE中编译:

这里我只使用64位的进行编译,我是配置是vs2014,osg3.4.0,osgearth2.8.0

1.将sqlite.h放进3rdParty的include文件夹,将sqlite3.lib,sqlite3d.lib放进3rdParty的ib文件夹,将sqlite3.dll,sqlite3d.dll放进3rdParty的bin文件夹下。

2.打开CMAKE,在SQLITE3_INCLUDE_DIR中填上3rdParty include文件夹位置;在SQLITE3_LIBRARY中填上sqlite3.lib所在位置

3.Configure, Generate

4.编译即可


至此得到了osgdb_osgearth_mbtiles.dll

这下就可以加载earth文件了。以下举例:

<map name="MBTiles" type="geocentric" version="2"><image name="CD" driver="mbtiles"><filename>D:/CD.mbtiles</filename><format>jpg</format></image></map>



阅读全文
0 0
原创粉丝点击