【发布时间】:2015-04-26 06:24:31
【问题描述】:
我有一个问题,我在调用 malloc 时无法编译我的 strdup。 当我不调用 malloc 时,它会完美地编译我的共享库,所以如果有人可以帮助我,那就太好了!
这是我的代码:
BITS 64
DEFAULT REL
global my_strdup:function
extern malloc
my_strdup:
[...]
call malloc
我用这个编译:
$> nasm -f elf64 my_strdup.S
$> gcc -shared -o libmy.so my_strdup.o
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: my_strdup.o: 针对未定义符号重定位 R_X86_64_PC32 ` malloc@@GLIBC_2.2.5' 制作共享对象时不能使用;使用 -fPIC 重新编译 /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld:最终链接失败:值错误 collect2:错误:ld 返回 1 个退出状态
我有这个错误。我不明白!我有一台64位的电脑。 这是我第一次尝试组装。
谢谢!
【问题讨论】:
标签: assembly shared-libraries nasm x86-64