macos - 在 macOS 上链接静态 Lua 库
问题描述
我正在尝试编译和链接一个使用 Lua 5.3 的 C 接口的程序(使用 CMake)Mac OS X 10.15.7
。但是我有这些问题:
brew install lua@5.3
只安装动态库/usr/local
由于系统完整性保护(?),我无法复制从源代码构建的静态库- 如果我将它们放在其他任何地方,我不知道如何让 CMake 找到这些库(使用
find_package(Lua 5.3 REQUIRED)
解决这个问题的最简单方法是什么?
解决方案
如果我正确理解您的问题,您正在尝试使用 Lua 的 C API,这意味着您需要访问主体头文件lua.h
、lualib.h
和lauxlib.h
,以及liblua.a
构建解释器时创建的静态库。
我建议lua-5.3.5.tar.gz
从lua.org下载,然后从源代码构建。
这可以从终端轻松完成:
$ wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
$ tar xzf lua-5.3.5.tar.gz
$ cd lua-5.3.5
$ make macosx
之后你应该也可以这样做,我相信make install
它将 Lua 解释器复制到。/usr/local/bin
如果您不希望将关键的 Lua 头文件放入包含路径中,请使用-I
和-L
标志构建您的程序。另外,链接程序时不要忘记-llua -ldl -lm
标志。
推荐阅读
- python - 在模型表单中添加用户名或任何用户身份验证相关字段,如名字、姓氏等
- typescript - 通过类型定义非空列表
- excel - 每次更新这些单元格的值时,同时更改多个工作表中的单元格值
- python - ROS订阅者到python中的套接字
- rxjs - 如何用 Rxjs 创建一个统一的数组?
- pandas - 根据列组减去列中的值
- windows - 执行 .cmd 文件的 Autosys 作业比通过命令行界面单独运行 .cmd 脚本花费的时间更长
- javascript - AWS Lambda 函数上 Axios 请求中的 NodeMailer
- c# - 如何从解决方案中的另一个项目将 JSON 文件作为字符串加载?
- sql - 我可以通过 VIEW 中的 WHERE 子句设置递归 CTE 吗?