2017-02-14 181 views
8

我目前正在嘗試建立一個Go項目,並考慮到我運行Windows,而其他2個開發人員正在Mac上工作,我有一些麻煩安裝一些軟件包。我怎樣才能安裝與MinGW取決於libiconv去包我

在嘗試使用cmd安裝軟件包後,我只能安裝2個。其他兩個需要gcc。

因此,我安裝了MinGW。我能夠以這種方式安裝第三個軟件包,但現在我卡在https://github.com/mikkyang/id3-go上。

它似乎取決於另一個基礎項目,https://github.com/djimenez/iconv-go。我嘗試go install ID3-去的那一刻,我總是留下這樣的錯誤:

src\github.com\djimenez\iconv-go\converter.go:8:19: fatal error: iconv.h: No such file or directory 

不知怎的,我需要使用MinGW使用libiconv的,但我不知道怎麼兩個部分連接起來。我並不是那個領域的專家,所以任何幫助都會受到重視。我已經下載了Windows的libiconv。 https://github.com/mikkyang/id3-go/issues/21

編輯:

因爲我在GitHub的項目中找到其他信息相關的問題我做了整個問題取得了一些進展。現在我得到了所有我需要的文件,但現在我堅持了這樣的警告:

# github.com/djimenez/iconv-go 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -liconv 
collect2.exe: error: ld returned 1 exit status 

我想從我的libiconv的安裝添加libiconv2.a到mingw32的lib文件夾,但隨後這是我結束與:

# github.com/djimenez/iconv-go 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libiconv.a when searching for -liconv 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/../lib\libiconv.a when searching for -liconv 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/libiconv.a when searching for -liconv 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib\libiconv.a when searching for -liconv 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libiconv.a when searching for -liconv 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/libiconv.a when searching for -liconv 
E:/Tools/TDM-GCC/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -liconv 
collect2.exe: error: ld returned 1 exit status 

我不知道如何從這裏開始。

+0

這些需要'gcc'的包是什麼? – eduncan911

+0

它是id3去的:https://github.com/mikkyang/id3-go – Sossenbinder

+0

我沒有看到在該軟件包中使用任何編譯。 – eduncan911

回答

2

我遇到同樣的問題,當我想要go install github.com/google/gopacket需要CGO。這是因爲您的libiconv2.a由其他編譯器生成,所以它與mingw32編譯器不兼容,如錯誤消息所示。我們需要生成與Mingw32工具包的靜態庫:在您的PC

  • 運行gendef(位於C

    1. 找到libiconv的-2.DLL(在coresonding動態庫):\ TDM-GCC-64 \ x86_64的在這些文件gendef libiconv-2.dll我的64位Windows)-w64-mingw32的\ bin中,這將產生libiconv2.def文件
    2. 然後生成靜態庫:

      dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libiconv2.a --input-def libiconv2.def

    3. 將libiconv2.a複製到適當的位置。