问题标签 [ldflags]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1456 浏览

go - 无效标志 #cgo LDFLAGS 使用 go lang 中断构建

我是 go-lang 的新手。我想使用 go 命令构建一个名为cryptogen(hyperledger/fabric 工具)的二进制文件。我从 github 下载源代码并根据自述文件键入以下命令:

在我的 Mac OS(OS 版本是 10.13,go-lang 版本是 1.10)上,我收到以下错误:

我以为我错过了libtool,安装后,我仍然遇到同样的错误。

接下来我能做什么?

0 投票
0 回答
1140 浏览

go - 为什么带有 ldflag `-X` 的`build` 仅在指定文件名时才有效?

我有文件playground.go

为什么构建 ldflag 的行为-X取决于指定源文件名?:

编辑:似乎从符号链接目录执行案例 1 时会出现问题;当 case 1 从原始目录执行时,变量被传递。我不确定这是否是预期的,或者这是一个错误。

0 投票
1 回答
1403 浏览

c++ - 如何使用附加标志编译铬?

我要检测 Chromium。因此,在添加了一些跟踪点之后,我必须在 Chromium 编译期间添加一些额外的标志,但我不知道应该在哪里添加它们!你知道如何用铬的调试标志编译铬吗?

谢谢

0 投票
1 回答
109 浏览

build - 在哪里可以找到所有 ldflags 快捷方式或其文档?

当构建系统告诉我它找到了对某些东西的未定义引用时,我总是感到困惑。很明显,未定义的引用错误与最终链接有关,因此它LDFLAGS与构建系统中的变量有关。但是如何找到 package 到底想要什么?例如,如果包链接-lm它意味着它想要libm,但我遇到了更多这些标志,有时即使在查看构建系统之后我也不知道它们来自哪里。有没有一种通用的方法来解决这个问题,或者一些提示?

0 投票
1 回答
720 浏览

go - 使用 ldflags 设置 Go 变量与供应商文件夹冲突

我目前正在开发一个小型 Go 应用程序,我想通过使用该选项在构建或运行时(使用go buildor )设置特定变量(如 Version、GitCommit、BuildID 等)。go run-ldflags

因为在我的公司,我们有几个具有相同基础的项目,所以我决定将带有这些变量的代码提取到一个单独的“信息”模块中,该模块可以导入到每个项目中。

这是我的问题,假设我正在运行这样的应用程序:

go run -ldflags "-X git.mycompany.com/utils/info.Version=1.0.0" app.go

这很好用,并且即使变量不是“主”应用程序的一部分而是依赖项,变量也被正确设置。

然后我决定部署应用程序,所以我使用新dep工具生成vendor文件夹。因此,“info”依赖项现在位于:vendor/git.mycompany.com/utils/info

现在,当我运行与上面相同Version的命令时,不再设置所述变量 ( )。

我在这里错过了什么吗?一旦我删除供应商文件夹,一切都会再次正常运行。就像这个供应商文件夹与-ldflags选项或其他东西冲突。

提前致谢!

0 投票
1 回答
3929 浏览

python - 正确构建本地 python3,支持 bz2

我正在尝试构建 python3 的本地版本(特别是 python3.7,但与 3.6.6 相同的问题),但是在链接到一些 C 库和/或头文件时遇到了问题(至少这是我认为的问题是)。

我能够构建 python3.7,但遇到 bzip2 的问题(但我怀疑会有其他系统库我遗漏了一个不知道的)。这在尝试导入需要它作为导入错误的各种包/模块时表现出来:

从这个 stackoverflow 问题 - Ask Question - 看来我已经构建了没有正确 bz2 标头的 python。python 构建本身不会失败。

具体问题是如何用bz2构建本地版本的python?更一般地说,问题是如何正确链接到系统库?(因为可能还有其他我没有遇到错误)

就我所尝试的而言 - 我发现了这个(旧的)问题 - 你如何将 bz2 分配给 python 的 altinstall?还有这个最近的问题Compiling bz2 support in python2并尝试了一些基于这些的东西。

我遇到的第一个问题实际上是找到要链接的正确库等(上述问题中的解决方案建议设置CFLAGS="-I/path/to/bz2/include"and LDFLAGS="-L/path/to/bz2/lib")。大概这些在我系统的某个地方(ubuntu 16.04),因为python2.7和python3.5的系统安装对bzip2没有问题。

我发现libbz2.so.1(以及其他一些)/lib/x86_64-linux-gnu/-但文件夹似乎没有遵循上面示例/答案的模式。因此,我构建了 bz2 的新本地版本(.bzp在我的本地文件夹中),然后在尝试构建 python3.7 时尝试链接到该版本,使用以下命令:

我还尝试了一个更通用的配置(它松散地基于Compile Python with bz2 support,链接到上面的第二篇文章。)

(这两个都不成功)

非常感谢任何指针、提示等 - 在此先感谢!

0 投票
1 回答
1412 浏览

go - 如何使用多个参数将 -ldflags 传递给 exec.Command

我有一个相当简单的 go 文件,它构建了几个用 go 编写的内部工具。在我决定将 -ldflags 添加到我的构建命令之前,它运行良好。以下是格式化go build命令的片段。

我的标志被定义为像这样的简单字符串

以下是我打印时的输出

上面的命令在我将它粘贴到我的 CLI 时有效,但当我go build通过我的 go 脚本运行它时失败。当我说失败时,我的意思是它没有设置我的变量githashbuildstamp. 复制和粘贴命令确实会按预期设置这些变量。

我认为它一定是带有引号的东西,我已经尝试改变它们,但我无法让事情正常工作。我开始认为我走错了路,这一定是让它发挥作用的更好方法。

0 投票
1 回答
162 浏览

c - 为什么 LDFLAGS 将我的库放在生成未定义引用的目标文件之前?

这就是发生的事情。

我希望命令是cc exemplo.c -o exemplo -ltestu01. 如何确保链接器的提示位于命令行末尾?

0 投票
2 回答
737 浏览

makefile - LDFLAGS 和 ldflags-y 的区别

kbuild文档说:

ldflags-y... [适用] 仅适用于分配它们的 kbuild makefile.... [用于] 在递归构建期间发生的所有 ld 调用。

尽管

LDFLAGS... [用于] 链接器的所有调用。

m给定一个 Makefile (我们输入make m),我看不出它们之间有什么区别

  • 假设LDFLAGS := x,因为它适用于链接器的所有调用,所以在从 开始的ld任何构建会话中调用的所有都make m具有xLDFLAGS
  • 假设ldflags-y := y,因为如果适用于 的所有递归调用ld,则所有ld调用(由从 开始的任何构建会话make m)也y具有LDFLAGS

这种解释正确吗?

0 投票
1 回答
1348 浏览

go - 在“开始构建”之前设置环境变量

从 go1.10 开始,只允许编译器/链接器选项的安全列表。这些之外的任何选项都需要包含在环境变量中,例如 ubuntu#echo $CGO_LDFLAGS_ALLOW -Wl,-Bdynamic,--wrap=memcpy 更多信息: https ://github.com/golang/go/wiki/InvalidFlag

在目录 foo 我有一些从另一个目录栏导入包的 go 代码。这个 bar 目录有一些 cgo 代码,其中声明了 #cgo 标志。

当我执行“go build”时,它会从 foo 转到 bar 并执行“go build”,但由于 CGO_LDFLAGS_ALLOW 未在环境中设置而失败。

我不想让我的所有团队在他们的环境中明确设置这个环境变量。有没有办法可以在目录栏中的“开始构建”之前设置环境变量?

我尝试在 foo 的 Makefile 中设置环境变量,但问题是子目录中有许多 makefile 可能会尝试构建 bar。我不想在所有 makefile 中设置变量。