iconv go公升級過程中的編譯問題

2022-03-31 19:41:32 字數 2768 閱讀 2271

工作專案原因,需要對golang進行公升級。公升級之後老的iconv-go執行有問題。因為新的golang執行更加嚴格,所以需要公升級iconv-go.

從djimenez/iconv-go 拉下來**進行編譯發現「找不到iconv庫的一些介面」,目測是庫沒鏈進來。錯誤資訊如下:

很奇怪,本地明明有安裝iconv,怎麼就找不到iconv庫?

iconv --version

iconv (gnu libiconv

1.14

)2000-2011

free software foundation, inc.

license gplv3+: gnu gpl version 3 or later //

gnu.org/licenses/gpl.html>

this is free software: you are free

to change and redistribute it.

there is no warranty, to the extent permitted by law.

written by bruno haible.

進到iconv-go的converter.go發現

package iconv

/*#cgo darwin ldflags: -liconv

#cgo freebsd ldflags: -liconv

#cgo windows ldflags: -liconv

#include #include // as of go 1.6 passing a pointer to go pointer, will lead to panic

size_t call_iconv(iconv_t ctx, char *in, size_t *size_in, char *out, size_t *size_out)

*/

我了個去,darwin,freebsd,windows都有。但是我在centos下使用的。難不成是這個原因,導致iconv庫沒有鏈進去?於是嘗試進行了修改。

package iconv

/*#cgo darwin ldflags: -liconv

#cgo freebsd ldflags: -liconv

#cgo windows ldflags: -liconv

#cgo ldflags: -liconv

#include #include // as of go 1.6 passing a pointer to go pointer, will lead to panic

size_t call_iconv(iconv_t ctx, char *in, size_t *size_in, char *out, size_t *size_out)

*/

再進行編譯。奇蹟般的通過了,通過了,通過了。。。

好吧,目前只是這樣猥瑣的解決的。這樣寫不知道會不會對跨平台造成影響。先這樣解決吧。記錄一下。

如果哪位同仁看到這篇文章,覺得不是這樣解決的,請不吝賜教。

bitcoind編譯過程中的問題

本文列出個人在編譯位元幣程式bitcoind以及啟動執行中遇到的問題。makefile.am 10 error libtool library used but libtool is undefined makefile.am 10 the usual way to define libtool i...

caffe編譯過程中protobuf的問題

build release src caffe proto caffe.pb.h 31387 42 error kemptystring is not a member of google protobuf internal type const cast std string google pro...

ecere 編譯過程中遇到的問題

ecere 編譯過程中遇到的問題 解壓後,直接make 顯示如下 問題開始了 一 致命錯誤 zlib.h 沒有那個檔案或目錄 執行 sudo apt get install zlib1g dev 二 致命錯誤 jpeglib.h 沒有那個檔案或目錄 執行 sudo apt get install l...