MSVC 编译生成 FreeXL

  FreeXL 是 libspatialite 的一个依赖,是一个从 Excel (.xls) 中提取有效数据的开源库。目前最新版本为 1.0.2

版本

Visual Studio: 2015

FreeXL: 1.0.2

编译生成

第 1 步

  FreeXL 依赖于 libiconv,首先需要 libiconv。想要自己编译生成可参考《Microsoft Visual Studio 编译生成 libiconv》。

第 2 步

  下载 freexl-1.0.2.tar.gz 并解压。

  freexl 默认的生成路径为 C:\OSGeo4W,如果想更改生成路径,可编辑 nmake.opt,修改 INSTDIR 指向目标路径。

  freexl 默认编译基于 OSGeo4W,因此 makefile.vc 中对 libiconv 的依赖默认指向 C:\OSGeo4W\include\iconv.h 和 C:\OSGeo4W\lib\iconv.lib。可通过修改 makefile.vc 文件指向自己的路径,也可将编译生成的 libiconv 相关文件复制到 C:\OSGeo4W 中。这里推荐后者,因为libspatialite 默认链接路径也是 C:\OSGeo4W。如果在第 1 步中根据《Microsoft Visual Studio 编译生成 libiconv》自己手动编译生成 libiconv,需要将 …\libiconv\include 中的 iconv.h 复制到 C:\OSGeo4W 中;把编译生成的 libiconv.lib 复制到 C:\OSGeo4W 中,并重命名为 iconv.lib

第 3 步

  编辑 …\freexl-1.0.2\src\freexl.c。由于 MSVC 不支持 round() 和 lround() 函数,简单地将 freexl.c 代码中所有“round”替换为“round1”即可。

第 4 步

  管理员身份打开 VS2015 Native Tools Command Prompt(根据实际需要选择 x86 或 x64)。

1
2
3
cd freexl-1.0.2
nmake /f makefile.vc
nmake /f makefile.vc install

  执行完成后,即可在 INSTDIR 中可以找到编译生成的头文件、静态链接和动态链接文件。