-1

控制台返回给我的完整错误如下。我在 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
4

1 回答 1

-1

这个问题的解决方案是从 Lubuntu 16.10 切换到 Lubuntu 14.04。该程序最终在该版本的我的系统上运行良好。不知道错误的根源是什么。

于 2017-03-10T04:00:10.973 回答