Search code examples
linkerld

I obtain a C project and got error when I do the command 'make elevator64' in Ubuntu terminal


Hello I'm learning <CSE 251 Programming in C> from webside https://www.cse.msu.edu/~cse251/project2.html.
I obtain the project and do the command 'make elevator64' in Ubuntu terminal.
But it failed. The error is below:

g++ -o elevator elevator.o -lm libElevatorLib64.a `wx-config --libs`
/usr/bin/ld: libElevatorLib64.a(ElevatorLib.o): relocation R_X86_64_32 against `.bss' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: libElevatorLib64.a(CApp.o): relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: libElevatorLib64.a(CFrame.o): relocation R_X86_64_32 against symbol `_ZN6CFrame13sm_eventTableE' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: 最后的链结失败: 输出不可表示的节
collect2: error: ld returned 1 exit status
Makefile:14: recipe for target 'elevator64' failed
make: *** [elevator64] Error 1

What happens?
Can anyone help me?


Solution

  • I had finally builded the environment for CSE-251-Programming-in-C labs and projects. Here's my share: https://github.com/elivon2000/CSE-251-Programming-in-C