最近接手一點代碼,前人留下一堆屎一樣的東西。。。配置表的讀取居然是每個都自己寫。。。默默地打開聊天框,輸入了四個字符並敲下回車:
-wtf
進入正題。發現一個讀寫EXCEL(.xlsx)文件的c/c++庫(之前一直在找,python有,c#有,就是沒有c/c++的讀寫一起的,有的都是要花錢),xlsxio。官網: https://github.com/brechtsanders/xlsxio
官網提供了源碼版本(source code)以及已編譯版本(binary)編譯版本要在windows下使用的話,要用visualstudio裏的lib工具導出dll文件的lib庫,然後用程序鏈接進去。
嘗試了一下使用cygwin編譯,也可以work,嘗試了下生成的庫讓visual studio用,不行。而且最麻煩的是cygwin編譯出的東西運行時需要好多的cygwin的dll文件,太麻煩。
後來仔細看官網的介紹裏說,他提供的binary版本都是用的mingw編譯的。所以搜了一下mingw以及mingw-w64的資料。最後才找到msys以及msys2。這裏簡單理一下它們的區別:
mingw只是一個編譯器(只提供g++/gcc),沒有make沒有cmake之類
cygwin:非常龐大的linux平臺移動到windows裏的平臺,裏面基本上應有盡有。
msys:在cygwin的早期版本上做的分支,精簡但後期缺乏更新。
msys2:因msys缺少更新,有人出來重新拉了個cygwin的分支,仍然精簡,但是比msys強大多了。
如果你編譯的程序最終想跑在linux平臺並想在win下編寫對系統API的依賴度比較深,建議使用cygwin,
如果你編譯的程序最終想跑在WINDOWS平臺,建議你使用msys2(msys2裏面可以安裝mingw)。
msys2配置:
在/etc/pacman.d/mirrorlist.mingw32中前面增加Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
在/etc/pacman.d/mirrorlist.mingw64中前面增加Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
在/etc/pacman.d/mirrorlist.msys中前面增加Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
命令簡記:
pacman -Syu
pacman -Su
pacman -S gcc
pacman -S make
如果只是想編譯代碼的話建議先裝msys2再把mingw-w64裝到msys2裏的mingw64中再配下源,然後只運行
pacman -Sy (只更新源,不下載安裝)
pacman -S make
pacman -S cmake
並且安裝mingw-w64的時候直接先裝完MSYS2後把MINGW安裝到D:\msys64\mingw64,注意文件夾不要錯位,不要安裝到D:\msys64\mingw64\mingw64裏了,msys2童鞋會找不到gcc g++的。這樣做的好處是mingw編譯出來的東東發佈時不需要依賴D:\msys64\usr\bin\msys-2.0.dll文件
參考:
https://blog.csdn.net/qiuyuan_1/article/details/78748557
https://blog.csdn.net/duquanwen/article/details/70339637
https://blog.csdn.net/hunterhuang2013/article/details/70880569