我正在编写一个调用 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 <stdlib.h>
我做错了什么?
最佳答案
在 Go 源存储库 default 分支的 tip,使用 -linkmode,而不是 -hostobj。例如,-linkmode=external。
Issue 4069 :cmd/ld:为 cgo 构建调用主机链接器 尚未标记为已修复。
关于linker - 去-LDFLAGS : -w -hostobj gives error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15592463/
我正在尝试使用gobuild来更新我项目中的一个变量:完整项目路径:c:\goprojects\src\deployment\cl\apps\appName从c:\goprojects\src运行goinstall-ldflags="-Xmain.GitRev=adaf66c"deployment\cl\apps\appName\...在go项目中我有:packagemainvarGitRev="oldvalue"funcmain(){fmt.Println("variablecontents:",GitRev)}然后从我运行的命令行:..\bin\appName.exe我期待看到的值
我有一个用Go编写的HTTP服务。在main.go中,我有一个全局的version字符串。packagemainvarversionstring在本地,我使用-ldflags"-Xmain.version=$VERSION构建,其中$VERSION由shell环境确定,如下所示:VERSION=v0.16.0gobuild./cmd/app-ldflags"-Xmain.version=$VERSION我最近决定试用GoogleAppEngine,并从一个基本的YAML文件开始:runtime:go111handlers:-url:/.*script:auto我可以在YAML文件中设置
Docker镜像:golang:1.12.1。本地Go版本:go1.10.4linux/amd64。我的bash脚本中有这样的命令:GOOS=linuxGOARCH=amd64gobuild-ldflags'-s-w-Xmain.Version=$(gitdescribe--tags)'-o./path/to/binary./main.go&&现在CI/CD在此命令上失败,但一个月前使用相同的Docker镜像一切正常。是-ldflags被弃用了还是什么?控制台输出:#command-line-argumentsusage:link[options]main.o...//skipped-
我正在使用Go1.9.2创建一个应用程序,我试图在构建过程中使用ldflags-X选项向它添加一个版本字符串变量。我已经设法在我的main包中设置了一个Version变量,方法是:-ldflags"-Xmain.Version=1.0.0",但是我真正需要的是在我的config包中设置Version变量,而不是main变量。这可能吗?这是我的构建命令:gobuild-ldflags"-Xconfig.Version=1.0.0"-o$(MY_BIN)$(MY_SRC) 最佳答案 引自Commandlink的文档:-Ximportpa
我正在使用Go1.9.2创建一个应用程序,我试图在构建过程中使用ldflags-X选项向它添加一个版本字符串变量。我已经设法在我的main包中设置了一个Version变量,方法是:-ldflags"-Xmain.Version=1.0.0",但是我真正需要的是在我的config包中设置Version变量,而不是main变量。这可能吗?这是我的构建命令:gobuild-ldflags"-Xconfig.Version=1.0.0"-o$(MY_BIN)$(MY_SRC) 最佳答案 引自Commandlink的文档:-Ximportpa
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我正在浏览go源代码,我想将其构建为osx的独立链接器,可以生成mach-o文件。有办法做到这一点吗?
为什么gwt-recaptcha-1.0.0.Beta2.jar在链接模块时阻止recaptchajar中的脚本标签?在我使用GWT的Web应用程序中,我使用了验证码验证。为了使用验证码,我使用了ClaudiusHauptmann的gwt-recaptcha-1.0.0.Beta2.jar。在这个jar的gwt.xml文件中有一个脚本配置如下:当我运行该项目时,它会通过在控制台中提供以下消息来忽略加载脚本:LinkingmodulesBootstraplinkforcommand-linemodule'com.web.Ask'Linkingmodule'ask'InvokingLink
我如何说服MSVC9链接器向我显示它正在搜索包含库(lib)的路径?我正在尝试解决出现以下链接器错误的问题:LINK:fatalerrorLNK1104:cannotopenfile'MyGizmo.lib'在Linker>General下,我将AdditionalLibraryDirectories设置为:..\..\..\x64\Release我认为这是我要查找的lib文件所在的位置。当我将此路径更改为lib文件所在的完全限定目录时,链接器通过并找到lib文件。因此,我得出结论,我在上面输入相对路径的方式是不正确的。如果路径是相对于源代码所在位置的路径,则此相对路径应该是正确的。那
当模板参数类型相同时,我正在尝试专门化两个模板参数的函数。我通过以下方式进行:#include#includeusingnamespacestd;templateintfun(U&u,Tt);templateinlineintfun(int&u,floatt){coutinlineintfun(U&u,typenamestd::enable_if::value,T>::typet){cout此代码编译良好(GCC4.8.2),但当U和T相同时,链接器会为所有fun调用提供undefinedreference类型。为什么它不起作用?链接器输出:g++-std=c++11test.cpp/
这个问题与此相关:"badcodegen,pointerdiff"linkererrorwithXcode4和"badcodegen,pointerdiffinboost"errorin32-bitbuild和XCode3.2.6and4linkererrorsld:badcodegen,pointerdiffin...toglobalweaksymbol我目前正在将我的所有项目升级到Xcode4,但我遇到了一些奇怪的事情。-仅当我构建通用二进制文件或32位版本时才会出现上述错误。如果我只坚持64位,一切正常。我正在自己构建一个自定义静态库,现在我不在该代码中使用任何可见性设置(即at