什么包为 g++ 提供了 -llua?

Ale*_*dar 6 package-management shared-library gcc g++

我已经安装了 Synaptic 的所有 lua5.1 开发包,但 g++ 链接器找不到-llua. 我读过其他一些问题,可能-llua有其他名称,我应该修复它。但问题是我似乎无法找到lua.o它的名字。

Gil*_*il' 5

gcc … -llua查找liblua.so在动态链接(默认)或liblua.a静态链接时调用的文件。

您可以使用apt-file查找包含特定名称文件的包 安装apt文件. 你也可以在packages.ubuntu.com上在线搜索(“搜索包的内容”,一定要选择你的发行版和架构)。但…

$ apt-file search liblua.so
$
Run Code Online (Sandbox Code Playgroud)

实际情况是 Ubuntu 提供了多个版本的 Lua 库,而且它们不是二进制兼容的,即您需要在构建时选择您想要的那个。

$ apt-file --regexp search '/liblua.*\.so$'
<lots of hits>
Run Code Online (Sandbox Code Playgroud)

从 natty 开始,Lua 的首选版本是5.15.04.0也可用。对应的链接lua库有liblua5.1.so,liblua50.soliblua40.so(可以用dpkg -L liblua5.1-0-dev或列出包中的文件apt-file list liblua5.1-0-dev)。所以,你需要改变你的链接命令-llua5.1(或者-llua50或者-llua40如果你需要一个二进制这是与旧系统兼容)。