3

我正在尝试使用 luarocks 安装 numlua:

luarocks make numlua-0.3-1.rockspec

但我收到以下错误:

/usr/bin/ld: numlua.o: relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
numlua.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
cp: cannot stat `numlua.so': No such file or directory

我猜我需要将 -fPIC 参数添加为标志,但对编译器和 luaRocks 的初学者来说不是很好做错了。任何帮助,将不胜感激!

4

1 回答 1

4

根据这个邮件列表讨论,看起来 LuaRocks 是为 32 位系统配置的,而实际上是在 64 位系统上运行的。您可能是通过包管理器安装它的,因为从源代码安装时不应该发生这种情况。

找到你的luarocks/config.lua文件。在我的 Ubuntu 11.10 系统上,它位于/usr/share/lua/5.1/luarocks/config.lua. 找到显示的行LUAROCKS_UNAME_M并将其更改i686x86_64

现在 luarocks 知道它在 64 位机器上,numlua 应该可以正常编译。

于 2012-02-19T00:41:24.300 回答