yanyiwu / gojieba

"结巴"中文分词的Golang版本
MIT License
2.43k stars 303 forks source link

1.4.1版本交叉编译问题 #117

Open lihaoqiang001 opened 3 months ago

lihaoqiang001 commented 3 months ago

升级到 1.4.1 版本,这个问题没有了: In file included from jieba.cpp:5: In file included from ../../../pkg/mod/github.com/yanyiwu/gojieba@v1.3.0/deps/cppjieba/Jieba.hpp:4: In file included from ../../../pkg/mod/github.com/yanyiwu/gojieba@v1.3.0/deps/cppjieba/QuerySegment.hpp:8: ../../../pkg/mod/github.com/yanyiwu/gojieba@v1.3.0/deps/cppjieba/DictTrie.hpp:152:12: warning: variable 'lineno' set but not used [-Wunused-but-set-variable] ../../../pkg/mod/github.com/yanyiwu/gojieba@v1.3.0/deps/cppjieba/DictTrie.hpp:217:17: warning: variable 'lineno' set but not used [-Wunused-but-set-variable]

但是交叉编译还是不行:GOOS=linux GOARCH=amd64 go build -gcflags=all='-N -l' -o my-app,报错: undefined: gojieba.Jieba undefined: gojieba.NewJieba

看了下里面用了C/C++相关的东西,大佬们有办法避免这个问题吗?

lihaoqiang001 commented 3 months ago

有两种方法(M 芯片 Mac):

  1. 本地使用 filosottile/musl-cross/musl-cross 这种工具
  2. 本地使用 docker 镜像去交叉编译

两种方法都有点麻烦,能从 SDK 本身去规避这个问题不?

lihaoqiang001 commented 3 months ago

顶上去,辛苦作者瞅瞅哇

lihaoqiang001 commented 3 months ago
  1. 安装好 filosottile/musl-cross/musl-cross ,编译的命令很长,但是包的体积大了好多
  2. 使用docker 编译的镜像 Linux 机器上用不了,提示无法执行
lihaoqiang001 commented 3 months ago

因为用 go 的 dlv debug 很方便,所以需要经常在 Mac 本机交叉编译Linux 的二进制文件

yanyiwu commented 2 months ago

1.4.3 修复了一个编译问题,你试试看 1.4.3 是否ok?