使用VS2015编译xlslib库
环境:
win7_x64,VS2015
开始:
一、下载xlslib库
解压到一个指定目录,如E:\library\xlslib-package-2.5.0
二、创建VS2015项目
1. 将"E:\library\xlslib-package-2.5.0\xlslib\xlslib\build\msvc2012"文件夹复制一份,并重命名为msvc2015
2. 使用VS2015打开"E:\library\xlslib-package-2.5.0\xlslib\xlslib\build\msvc2015\xlslib.sln",打开期间会提示是否升级到VS2015编译器,点击升级。
三、配置VS2015项目
1. 修改"xlslib_dll"项目
"xlslib_dll"项目 -> "编辑 xlslib_dll.vcxproj",将重复的"<ClCompile Include="..\..\src\xlslib\formula.cpp" />"项,删除一个,然后重新加载项目即可。
"xlslib_dll"项目 -> "C/C++" -> "预处理器" -> "预处理器定义" 添加 "_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS"
"xlslib_lib"项目 -> "属性" -> "生成事件" -> "后期生成事件" -> "命令行" 替换为
echo $(SolutionDir)bin/x64_MSVC2015.$(Configuration)\createDLL -M$(Platform) -n$(OutDir)$(ProjectName).map -l$(IntDir) -i$(OutDir)$(ProjectName).lib -W$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)\
$(SolutionDir)bin/x64_MSVC2015.$(Configuration)\createDLL -M$(Platform) -n$(OutDir)$(ProjectName).map -l$(IntDir) -i$(OutDir)$(ProjectName).lib -W$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)\
"xlslib_lib"项目 -> "属性" -> "常规" -> "输出目录" -> 替换为 "$(SolutionDir)bin/$(Platform)_MSVC2015.$(Configuration)\"
"xlslib_lib"项目 -> "属性" -> "常规" -> "中间目录" -> 替换为 "$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)\"
2. 修改"createDLL"项目
"createDLL"项目 -> "C/C++" -> "预处理器" -> "预处理器定义" 添加 "_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS"
"createDLL"项目 -> "属性" -> "常规" -> "输出目录" -> 替换为 "$(SolutionDir)bin/$(Platform)_MSVC2015.$(Configuration)\"
"createDLL"项目 -> "属性" -> "常规" -> "中间目录" -> 替换为 "$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)\"
四、修改编译错误
1. 修改"acconfig.win32.h"文件
删除230行"typedef __int8 int8_t;"
2. 修改note.h文件
将46行"uint16_t sheet_notes"替换为"uint16_t sheet_notess"
3. 修改note.cpp文件
将342行"last_sheet.sheet_notes"替换为"last_sheet.sheet_notess"
将355行"sn.sheet_notes"替换为"sn.sheet_notes"
将358行"sn.sheet_notes"替换为"sn.sheet_notes"
4. 修改formula.cpp文件
将917行"function_property p = (function_property) {CELLOP_AS_VALUE, A_UNKNOWN};"替换为"function_property p{CELLOP_AS_VALUE, A_UNKNOWN};"
5. 修改createDLL.cpp文件
在385行添加"__xmm@",否则编译"xlslib_dll"项目会出现"error LNK2001: 无法解析的外部符号 __xmm@00000000000000000000000000000002"
"__xmm@00000000000000000000000000000002"符号是在构造函数初始化列表中枚举类型赋初始值时,VS2015编译时自动创建的,在VS2010中不会创建这个符号,添加到filterSymbols数组是为了将不需要导出的符号过滤掉。
使用VS2015编译xlslib库的更多相关文章
- [转]Windows下使用VS2015编译openssl库
转自:http://blog.csdn.net/alger_magic/article/details/52584171 目标:编译vs环境下openssl库 工具: 1. 编译环境win10+vs2 ...
- Qt 5.6 5.8 vs2015 编译静态库版本(有全部的截图)good
安装Qt 去Qt官网下载Qt安装包 安装Qt和源码,一定要勾选source选项 添加bin到系统变量 工具 需要python3和 perl. vs2015 第三方工具,到官方下载安装 在命令行 ...
- vs2015 编译boost库
1.下载boost官网安装包. https://dl.bintray.com/boostorg/release/1.66.0/binaries/ 注意:这里一定要选择好boost版本 如: boos ...
- VS2015编译gdal库
gdal下载地址:http://trac.osgeo.org/gdal/wiki/DownloadSource 修改nmake.opt中的一些配置.1. GDAL_HOME = “C:\warmerd ...
- VS2015编译GDAL库出现宏重复定义 snprintf: 宏重定义
E:\OpenSourceGraph\gdal-1.10.0\gdal\port cpl_config.h 20行 #define HAVE_VPRINTF 1#define HAVE_ ...
- VS2015编译gdal库 debug
nmake -f makefile.vc DEBUG=1nmake /f makefile.vc installnmake /f makefile.vc devinstal E:\Visual Stu ...
- vs2015编译各种库
1.编译libcurl https://www.jianshu.com/p/f82d3d18da93
- VS2015编译OpenSSL
概述 OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的 ...
- VS2015编译Qt5.7.0生成支持XP的静态库(很不错)
一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...
随机推荐
- 试试Markdown哈
目录 一级标题 二级标题 三级标题 二级标题? 我擦了? 这什么语法.文字下面加-号,实现二级标题? 看看是几级标题 还真的是二级标题. ...... # 看来四个空格是个,嗯,默认的东西 ??中间是 ...
- 第六次作业———numpy数据集练习
1. 安装scipy,numpy,sklearn包 2. 从sklearn包自带的数据集中读出鸢尾花数据集data 3.查看data类型,包含哪些数据 4.取出鸢尾花特征和鸢尾花类别数据,查看其形状及 ...
- python笔记24-os模块
import osprint(os.getcwd())#取当前工作目录#os.chmod('/usr/local',7)#给文件目录加权限,7是最高权限print(os.chdir(r"e: ...
- C# XML反序列化与序列化举例:XmlSerializer(转)
using System; using System.IO; using System.Xml.Serialization; namespace XStream { /// <summary&g ...
- 第十二周翻译-《Pro SQL Server Internals, 2nd edition》
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 专业SQL服务器内部 了解在引擎盖下发生 ...
- hadoop.docker.up.problems: Too many levels of symbolic links
#root@c7hp:~ excp c78 "zkServer.sh start"[1] 11:49:44 [FAILURE] c78 Exited with error code ...
- C++面试笔记(2)
11 explicit 显式构造函数 explicit修饰的构造函数可用来防止隐式转换 class Test1 { public: Test1(int n) // 普通构造函数 { num=n; } ...
- jmeter 常用组件详解
1.测试计划(test plan) 描述一个性能测试,包含本次测试所有相关功能 2.threads(users)线程 Setup thread group: 一种特殊类型的线程,可用于执行预测试操作. ...
- .Net Core+Angular6 学习 第二部分(创建Angular6项目)
. 创建angular6 前提: 需要安装nodejs以及angular的脚手架,Angular官网要求Angular6.0必须在node 8.x 和 npm 5.x 以上的版本才能正常使用. 我的版 ...
- makefile笔记4 - makefile命令
每条规则中的命令和操作系统 Shell 的命令行是一致的. make 会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的. 在命令行之间中的空 ...