Linker Go-LDFLAGS:-w-hostobj给出错误
我正在编写一个调用C代码的Go包。我需要调用主机链接器,但不幸的是,添加Linker Go-LDFLAGS:-w-hostobj给出错误,linker,go,cgo,Linker,Go,Cgo,我正在编写一个调用C代码的Go包。我需要调用主机链接器,但不幸的是,添加-hostobj标志会导致以下错误: gcc: error: unrecognized option ‘-h’ 操作系统为Linux,体系结构为amd64 以下是所有的旗帜: // #cgo CFLAGS: -I. -fPIC // #cgo LDFLAGS: -lstdc++ -w -hostobj -L. libsomething.a // #include "something.h" // #include <
-hostobj
标志会导致以下错误:
gcc: error: unrecognized option ‘-h’
操作系统为Linux,体系结构为amd64
以下是所有的旗帜:
// #cgo CFLAGS: -I. -fPIC
// #cgo LDFLAGS: -lstdc++ -w -hostobj -L. libsomething.a
// #include "something.h"
// #include <stdlib.h>
cgo CFLAGS:-I.-fPIC
//#cgo LDFLAGS:-lstdc++-w-hostobj-L.libsomething.a
//#包括“something.h”
//#包括
我做错了什么?在Go source repository
default
分支的提示中,使用-linkmode
,而不是-hostobj
。例如,-linkmode=external
:cmd/ld:invoke host linker for cgo build
尚未标记为已修复。在Go source repositorydefault
分支的提示
处,使用-linkmode
,而不是-hostobj
。例如,-linkmode=external
:cmd/ld:invoke host linker for cgo build
尚未标记为已修复。该-hostobj
标志应该做什么?我在gcc或ld手册中都找不到它。(而且-w
看起来很奇怪。)我不确定我是否正确,但据我所知,它告诉Go链接器使用主机的链接器。-hostobj
标志应该做什么?我在gcc或ld手册中都找不到它。(而且-w
看起来很奇怪。)我不确定我是否正确,但据我所知,它告诉Go链接器使用主机的链接器。我使用的是来自hg的构建(修订版+1405be4b6fc4)。将其添加到LDFLAGS会给我/usr/bin/ld:not-find-linkmode=external
。如果我执行安装-ldflags“-linkmode=external”
它会编译,但我认为它会被忽略,因为它也不会抱怨-hostobj
。。我仍然会遇到我想要避免的链接错误。如何验证正在使用该标志?我使用的是来自hg的构建(修订版+1405be4b6fc4)。将其添加到LDFLAGS会给我/usr/bin/ld:not-find-linkmode=external
。如果我执行安装-ldflags“-linkmode=external”
它会编译,但我认为它会被忽略,因为它也不会抱怨-hostobj
。。我仍然会遇到我想要避免的链接错误。如何验证正在使用该标志?