0

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 がオブジェクト ファイルの変数名または関数名の壊れた構文の一部を理解していないことです。

これを解決する方法についてのアイデアは大歓迎です。

4

1 に答える 1

0

これは、x86_64 システムで発生した問題です。

-fPICCFLAGS(CXXFLAGS) または IDE のコンパイラ フラグに追加してみてください。

このフラグは、gcc(g++) を 64 ビットでコンパイルします。

于 2014-04-07T06:22:11.257 に答える