lua-cjson在MAC OSX 10.9.5下的Makefile配置

本文介绍了在MAC OSX 10.9.5下配置Lua CJSON 2.1的Makefile过程,包括修改LUA_VERSION为5.2,将CJSON_LDFLAGS更改为适用于Mac的-bundle和-undefined dynamic_lookup选项,以及如何处理fpconv相关的编译错误。通过这些调整,解决了在编译过程中可能出现的‘multiple lua vms detected’错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本:Lua CJSON 2.1 

Makefile的改动:

LUA_VERSION =       5.2  #注意你的lua版本,可以用lua -v看 取小数点后一位 我的版本是

Lua 5.2.3  Copyright (C) 1994-2013 Lua.org, PUC-Rio

PREFIX =            /usr/local  前缀路径,安装lua的时候用 make install 安装;可以cd /usr/local到该路径查看是否存在lua的相关库

原:CJSON_LDFLAGS =     -shared

改:CJSON_LDFLAGS =     -bundle -undefined dynamic_lookup

这里就是OSX和Unix的区别,bundle是Mac使用的文件格式,如果不使用这些选项,可能引起“multiple lua vms detected”错误


FPCONV_OBJS =       fpconv.o 注释掉

添加:

FPCONV_OBJS =       g_fmt.o dtoa.o
CJSON_CFLAGS +=     -DUSE_INTERNAL_FPCONV

CJSON_CFLAGS +=     -DIEEE_BIG_ENDIAN

CJSON_CFLAGS +=     -pthread -DMULTIPLE_THREADS 


按照原来的Makefile编译会报以下的错误:

./fpconv.h:15:20: warning:inline function 'fpconv_init' is not defined [-Wundefined-inline]

extern inline void fpconv_init();


Undefined symbols for architecture x86_64:


谭浩强系列的入门C误人不浅啊,不知Makefile为何物。


第一次在网上写经验Blog,希望能帮助到遇到同样问题的你。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值