make执行报错No rule to make target 'posix'停止,求luamysql对应Makefile修复方案
问题原因
- Lua官方源码的Makefile中不存在名为
posix的编译目标,你在deps构建规则中指定调用make posix,进入Lua目录后无法匹配到对应规则,直接触发报错。
修复方案
- 替换
deps规则中的posix为你当前操作系统对应的Lua编译目标,常用目标对应关系如下:- Linux 环境替换为
linux - macOS 环境替换为
macosx - FreeBSD 环境替换为
bsd - 其他POSIX兼容环境如果没有对应目标,可以直接删除
posix参数,默认走通用构建逻辑
- Linux 环境替换为
- 确认
LUADIR := $(HOME)/workspace/lua路径正确,目录下存在Lua官方源码的顶层Makefile,避免路径错误找不到构建文件。
修正后的deps规则示例(Linux环境)
deps: $(MAKE) linux MYCFLAGS="-fPIC -DLUA_USE_DLOPEN -Wl,-E" MYLIBS="-ldl" -C $(LUADIR)
额外注意事项
- 你当前给Lua传递的
-fPIC参数是正确的,因为后续要把Lua链接到你的luamysql.so动态库中,不加-fPIC会触发后续链接报错 - 如果不需要每次构建都重新编译Lua,可以去掉deps的依赖,手动编译一次Lua之后就可以直接构建自己的目标文件,提升构建效率
内容的提问来源于stack exchange,提问作者Fnug
相关产品推荐
相关产品推荐

