Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
德朗:重新定位R_X86_64_32以对抗`.rodata';制作共享对象时不能使用;用-fPIC重新编译_D - Fatal编程技术网

德朗:重新定位R_X86_64_32以对抗`.rodata';制作共享对象时不能使用;用-fPIC重新编译

德朗:重新定位R_X86_64_32以对抗`.rodata';制作共享对象时不能使用;用-fPIC重新编译,d,D,我试图使用dmd编译一个简单的hello world,但我得到以下输出: dmd hi /usr/bin/ld: hi.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC hi.o: error adding symbols: Bad value collect2: error: ld returned 1 exit status

我试图使用dmd编译一个简单的hello world,但我得到以下输出:

dmd hi
/usr/bin/ld: hi.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
hi.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
--- errorlevel 1
所以我尝试使用-fPIC

/usr/bin/ld: /usr/lib/libphobos2.a(object_a_66e.o): relocation R_X86_64_32 against `_D12TypeInfo_Aya6__initZ' can not be used when making a shared object; recompile with -fPIC
/usr/lib/libphobos2.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
--- errorlevel 1
大约一个月前,这是一个不存在的问题

系统:Arch Linux 64位

可能是什么问题

dmd -m32 hi
/usr/bin/ld: skipping incompatible /usr/lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /lib/../lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /lib/../lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/libphobos2.a when searching for -l:libphobos2.a
/usr/bin/ld: cannot find -l:libphobos2.a
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread
collect2: error: ld returned 1 exit status
--- errorlevel 1

发生此错误的原因是因为存在硬化包装。删除此软件包解决了问题。

尝试使用
dmd-m32 hi
dmd-m64 hi
两种方法,看看它们是否有不同的功能。