gpt4 book ai didi

编译 "stress-ng"包的静态链接可执行文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:26:25 35 4
gpt4 key购买 nike

我正在尝试编译“stress-ng”包以生成静态链接的可执行文件,以便在 GEM5 全系统模拟器中使用它。

可以下载此包的 tarball here .我要编译的版本是 0.07.08。

要编译这个包的动态链接可执行文件,只需“make”。这对我有用。

但是,由于我需要从 GEM5 全系统模拟中运行“stress-ng”exe,我需要确保该 exe 是独立的。这通常是使用“-static”CFLAG 选项完成的,但是,对于“stress-ng”,我在尝试此选项时遇到错误。

以下是重现此错误的方法。编辑“Makefile”并在第 25 行末尾添加“-static”选项。第 25 行应如下所示:

CFLAGS += -Wall -Wextra -DVERSION='"$(VERSION)"' -O2 -std=gnu99 -static

保存然后make,你会看到如下错误:

/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libpthread.a(lowlevellock.o): In function `__lll_lock_wait_private':
/build/eglibc-3GlaMS/eglibc-2.19/nptl/../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:78: multiple definition of `__lll_lock_wait_private'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libc.a(libc-lowlevellock.o):(.text+0x0): first defined here
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libpthread.a(lowlevellock.o): In function `__lll_unlock_wake_private':
/build/eglibc-3GlaMS/eglibc-2.19/nptl/../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:328: multiple definition of `__lll_unlock_wake_private'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libc.a(libc-lowlevellock.o):(.text+0x30): first defined here
collect2: ld returned 1 exit status
make: *** [stress-ng] Error 1

最后OS是Ubuntu 14.04,cc版本是4.6.4。

我是否在这里遗漏了其他一些 CFLAG 选项?

最佳答案

我已经对 stress-ng 存储库推送了一个新的修复程序,现在允许静态链接。问题是 -lc 在 -lpthread 之前,这导致了问题。

拉取最新的更改,然后构建:

STATIC=1 使

关于编译 "stress-ng"包的静态链接可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979061/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com