版本: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,希望能帮助到遇到同样问题的你。