https://my.oschina.net/u/659405/blog/342406
windows go amd64 libiconv 缺失報錯問題
windows amd64 的go環境使用的gcc環境帶的libiconv庫不匹配,使用iconv-go庫的時候報錯,就本身編譯了一個
步驟以下,下載libiconv源代碼http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
安裝msys64
http://blog.csdn.net/akof1314/article/details/17842215
軟件安裝
下載msys2-x86_64軟件包,雙擊安裝到某根目錄下,好比D:\msys64。不要用空格目錄
打開運行mingw64.exe
pacman是MSYS2自帶的軟件管理工具:
可經過修改msys64\etc\pacman.d下的三個文件修改軟件源,可供選擇的有:中國科學技術開源軟件鏡像、北京理工大學鏡像、日本北陸先端科學技術大學院大學SourceForge鏡像、The UK Mirror Service Sorceforge mirror等。
下載後的軟件包默認存放目錄msys64\var\cache\pacman\pkg;若命令行下載速度較慢,能夠到到軟件源網站使用下載工具下載相應的軟件包,而後拷貝到此目錄,接着使用命令行進行安裝。
運行msys2_shell.bat: pacman -Sy 更新本地包數據
升級核心包:pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl, 以後須要關閉全部 MSYS2 shell,而後運行 autorebase.bat
升級其餘包:pacman -Su
經常使用命令:
pacman -Q查看已安裝的軟件包
pacman -S -g查看軟件組
pacman -Q -g base-devel查看軟件組包含的軟件
pacman -Q -l vim查詢軟件包的內容
pacman -Q -s nettle查詢軟件所在的包
查看工具幫助:pacman -h ;pacman -S -hgit
建議經過安裝軟件組來安裝工具鏈
應爲是go64因此安裝gcc 64
pacman -S mingw-w64-x86_64-toolchain
p
pacman -S mingw-w64-i686-toolchain
p
pacman -S base-devel
p
pacman -S vimgithub
打開msys,gcc -v測試保證是默認gcc版本
而後進入libiconv的解壓目錄
./configure
make
在lib/.libs目錄存在生成目標文件
拷貝libiconv.dll.a(文件能夠不用)以及libiconv-2.dll至iconv.h相關目錄(GOPATH=D:\WebstormProjects\testgo\clib目錄下)
go get https://github.com/qiniu/iconv
修改源碼D:\WebstormProjects\testgo\src\github.com\qiniu\iconv\iconv.go
添加
//#cgo CFLAGS: -ID:/WebstormProjects/testgo/clib //-I表示搜索頭文件目錄
//#cgo LDFLAGS: -LD:/WebstormProjects/testgo/clib -llibiconv-2 //-L表示搜索動態庫1目錄
編譯輸出目錄,記得運行時加上
set path=D:\WebstormProjects\testgo\clib;%path%
否則會報錯找不到dllshell
D:\Program\msys64\mingw64\include下有這個頭文件和庫vim