我想问你一个关于伪善的问题。关于以下问题的最后一项:
PerlEmbed - C# - Mono - Linux
我问jonathanpeppers,他说他不再研究perl和c了。所以我向小组提出要求。
我试图在linux机器上运行perlembed.c,但出现了以下错误。你能帮我一下吗?

[root@BSG01 melih]# gcc -shared -Wl,-soname,perlembed.so -o perlembed.so perlembed.c `perl -MExtUtils::Embed -e ccopts -e ldopts`
/usr/bin/ld: /tmp/ccRP7CYZ.o: relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/tmp/ccRP7CYZ.o: could not read symbols: Bad value
collect2: ld returned 1 exit status

最佳答案

按照错误信息中的建议做。使用编译器选项:

gcc -shared -Wl,-soname,perlembed.so -o perlembed.so -fPIC perlembed.c `perl -MExtUtils::Embed -e ccopts -e ldopts`

编辑:
here for the documentation of -fPIC's options

关于c# - C#-Perlembed-Linux中的编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13797834/

10-10 20:50