我想问你一个关于伪善的问题。关于以下问题的最后一项:
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/