c - “错误:在创建共享对象时无法使用针对 `.text' 的重定位 R_X86_64_32S”,同时创建动态库
问题描述
我正在尝试从源代码创建一个动态库,但出现以下错误。我只是想不通为什么。
ld: entry.o: relocation R_X86_64_32S against `.text' can not be used when making a shared
object; recompile with -fPIC
entry.o: error adding symbols: Bad value
Makefile:12: recipe for target 'libdune.so' failed
make: *** [libdune.so] Error 1
我有源代码,我的 Makefile 如下所示
CC = gcc
CFLAGS = -Wall -fPIC -g -O3 -MD
LDFLAGS = -shared
OBJ = entry.o dune.o vsyscall.o elf.o vm.o util.o page.o procmap.o debug.o apic.o
NOFPU_OBJ = trap.o
$(NOFPU_OBJ): EXTRA_FLAGS := -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -msoft-float
all: libdune.so
libdune.so: $(OBJ) $(NOFPU_OBJ)
$(LD) -shared -o $(@) $(OBJ) $(NOFPU_OBJ)
clean:
rm -f *.o test *.d libdune.so
-include *.d
%.o: %.c
$(CC) $(CFLAGS) $(EXTRA_FLAGS) -o $@ -c $<
“relocation R_X86_64_32S against”链接错误谈到了几乎相同的问题,但就我而言,我有所需的源代码。有关如何使其工作的任何帮助?
解决方案
推荐阅读
- image - Shopify - Avone 主题。如何隐藏链接到变体的图像缩略图
- payment - 在 Unzer 支付网关上设置每一分钟的重复交易
- flutter - 在我的 Android Studio 设备上运行 Flutter 应用程序时出错:“ProcessException:%1 不是有效的 Win32 应用程序”
- ubuntu - 使用 Photorec 恢复已删除的 css 文件时选择的文件格式
- android - Android Studio中的任务执行失败任务':app:dataBindingMergeDependencyArtifactsDebug'的执行失败
- apache-spark - 是否可以使用固定的 Spark 上下文池并行运行多个 Spark 作业?
- c++ - 将protobuf传递给类成员函数时的protobuf不完整类型
- r - 如何知道 R 中剪切函数的边界值?
- javascript - JavaScript 动态检查 typeof
- python - 验证使用 iloc[0] 时只有一行