C# - perlembed - 在linux中编译错误

时间:2012-12-10 09:06:19

标签: c# c linux perl

我想问你一个关于perlembed的问题。关于以下问题的最后一个条目: 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

1 个答案:

答案 0 :(得分:2)

按照错误消息中的建议进行操作。使用编译器选项-fPIC

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

修改

请参阅here for the documentation of gcc's options