为了账号安全,请及时绑定邮箱和手机立即绑定

go 1.10:无法在共享库中隐式包含运行时/cgo

go 1.10:无法在共享库中隐式包含运行时/cgo

Go
翻阅古今 2023-07-17 17:47:06
我正在尝试执行go build -buildmode=shared -linkshared test,但收到错误:go 1.10: cannot implicitly include runtime/cgo in a shared library我该包中只有一个文件库.gopackage testimport "fmt"func Hello() {    fmt.Println("Hi")}我在运行go1.10.4 linux/amd64 的Linux 机器上
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

这个过程对我有用:


$ docker run -it golang /bin/sh

# cd src

# mkdir test

# cat << EOF > test/lib.go

> package test

import "fmt"

func Hello() {

    fmt.Println("Hi")

}> > > > 

> EOF

# cat test/lib.go

package test

import "fmt"

func Hello() {

    fmt.Println("Hi")

}

# go install -buildmode=shared -linkshared std

# ldd /usr/local/go/pkg/linux_amd64_dynlink/libstd.so

    linux-vdso.so.1 (0x00007fff4093d000)

    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3454de5000)

    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3454dc4000)

    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3454c03000)

    /lib64/ld-linux-x86-64.so.2 (0x00007f3457514000)

# go install -buildmode=shared -linkshared test

# ldd /go/pkg/linux_amd64_dynlink/libtest.so

    linux-vdso.so.1 (0x00007ffddbbeb000)

    libstd.so => /usr/local/go/pkg/linux_amd64_dynlink/libstd.so (0x00007f82bc8cf000)

    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f82bc70a000)

    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f82bc705000)

    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f82bc6e4000)

    /lib64/ld-linux-x86-64.so.2 (0x00007f82bf0fc000)


查看完整回答
反对 回复 2023-07-17
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

问题是我没有cgo在任何地方导入。因此,这意味着不会导出任何函数,这意味着没有任何内容可以构建到库中。



查看完整回答
反对 回复 2023-07-17
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信