使用VS2015編譯xlslib庫


環境:

  win7_x64,VS2015

開始:

一、下載xlslib庫

  xlslib-package-2.5.0.zip

  解壓到一個指定目錄,如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數組是為了將不需要導出的符號過濾掉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM