コンソールから返された完全なエラーを以下に示します。VirtualBox と VMware で Lubuntu を使用しています (両方を試しました)。何らかの理由で、ラップトップでは機能しますが、デスクトップでは機能しません。多くのメッセージ フォーラムを通じて自分で調べてみたところ、自分のシステムの ld 自体に何か問題があるように思えますが、何が問題なのかを理解するのに十分なスキルがありません。「1つの終了ステータス」が失敗を意味することは知っていますが、それだけです。なぜ失敗するのかわかりません。あるマシンで実行され、他のマシンで実行されない場合、私のコードとは何の関係もありません。
私がプログラミングしている言語は、YASM コンパイラを使用したアセンブリです。コンパイル用のスクリプトは、エラー コードの下にリンクされています。
エラーコード:
/usr/bin/ld: funcs.o: relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
コンパイル スクリプト:
g++ -g -c $1.cpp -lglut -lGLU -lGL -lm
yasm -g dwarf2 -f elf64 $2.asm -l $2.lst
g++ -g -o $1 $1.o $2.o -lglut -lGLU -lGL -lm
上記のスクリプトは少し複雑ですが、以下のような単純なスクリプトも機能しないことに注意してください。
yasm -g dwarf2 -f elf64 $1.asm
yasm -g dwarf2 -f elf64 $2.asm
gcc -g -o $1 $1.o $2.o