为什么 Lua 5.3 找不到 include 路径(缺少:LUA_INCLUDE_DIR)

大家好, 我最近在 Centos 7 上成功安装了 Lua 5.3 到 /opt/lua53 中 我也在 /etc/bashrc 中添加了以下内容

PATH=/opt/lua53/bin:$PATH
LD_LIBRARY_PATH=/opt/lua53/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
export LUA_INCLUDE_DIR=/opt/lua53/include

我的同事也安装了一个软件,当我执行以下命令时

make

我得到以下错误消息

[root@pc6 jixie]# make -- Release Build -- Could NOT find Lua (missing: LUA_INCLUDE_DIR) (Required is at least version "5.2") -- Could NOT find ZEROMQPP (missing: ZEROMQPP_LIBRARIES ZEROMQPP_INCLUDE_DIRS) -- Could NOT find OPENVDB (missing: OPENVDB_LIBRARIES OPENVDB_INCLUDE_DIRS) -- Downloading/updating kdtree -- Configuring done -- Generating done

我查看了几个主题,但没有一个可以帮助我。

正如我所写的,我添加了以下行

export LUA_INCLUDE_DIR=/opt/lua53/include

希望它可以提供对 LUA_INCLUDE_DIR 的路径,但不幸的是我仍然得到相同的错误。

有什么办法可以解决我的问题吗?您需要我提供更多系统信息吗?

NB:我正在使用 cmake 3.10

点赞
用户107090
用户107090

PATH=/opt/lua35/bin:$PATH 看起来有误:应该改为 /opt/lua53/bin

2017-11-23 17:33:39
用户385390
用户385390

你正在重新发明轮子,并将其变成方形...

如果你已经安装了 Lua 开发程序(包或源代码),那么应该有一个名为 lua.pc 的包配置文件在一个位置上,cmakeconfigure 可以找到它并查询它以确定任何需要 Lua 包含库和 cflags 的应用程序应该包括什么。对于我的系统,这些文件通常位于 /usr/lib64/pkgconfig/,实际上 lua.pc 就放置在那里,并具有以下内容:

V= 5.3
R= 5.3.4
prefix= /usr
exec_prefix=${prefix}
libdir= /usr/lib64
includedir=${prefix}/include

Name: Lua
Description: An Extensible Extension Language
Version: ${R}
Requires:
Libs: -llua -lm -ldl
Cflags: -I${includedir}

以上文件告诉 configure 包含目录在哪里,更重要的是,在编译期间使用什么标志(-I... -L... -l...)。

如果你在一个带有软件包管理器的系统上(比如 yumdnfapt-get 等),那么如果这些 pc 文件存在于软件包中,将它们放置在其位置上会自动进行处理。

如果你坚持按照上述方法手工编码 LUA_INCLUDE_DIR 到你的 shell 环境中,那么请确保 LUA_INCLUDE_DIR 指向一个已经存在且具有有效内容的位置。你确定所需的包含文件能够在那个目录中找到吗?也许那里有一个额外的目录?

2018-07-12 15:55:51