在我的 sabayon 盒子上安装升级后(我不记得升级了什么)我在以前的工作代码上遇到了一个链接错误。
dmd src/ast.o src/saturated.o src/queue.o src/operator.o src/tree.o src/heap.o src/bug.o src/levenshtein.o src/main.o src/lexer.o src/binary_tree.o src/sparse_vector.o src/stack.o src/integral_literal.o src/precedence_climbing.o src/traversal.o -ofmain
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: src/ast.o: relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
src/ast.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
--- errorlevel 1
make: *** [main] Error 1
我不知道 ld 的内部工作原理(或与此相关的目标文件),但我能想到的唯一问题是 ld 不理解目标文件中变量或函数名称中的一些错误语法。
非常感谢有关如何解决此问题的任何想法。