我的MAC编译LUA-CJSON模块时报如下错误,求大神解答~~!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的MAC编译LUA-CJSON模块时报如下错误,求大神解答~~!相关的知识,希望对你有一定的参考价值。

我的是MAC10.9,编译其它软件没问题的,就想给lua安装一个cjson模块,我的lua也是用luajit源码包编译安装的。但是装cjson模块时报错了,网上搜索了许多,找不到答案。
由于字数有限制,我省略到中间不是报错的内容:
huangwhMac:lua-cjson-2.1.0 huangwh$ make
cc -shared -o cjson.so lua_cjson.o strbuf.o fpconv.o
Undefined symbols for architecture x86_64:
"_luaL_argerror", referenced from:
_json_protect_conversion in lua_cjson.o
_json_encode in lua_cjson.o
_json_decode in lua_cjson.o
_json_cfg_encode_sparse_array in lua_cjson.o
_json_cfg_encode_max_depth in lua_cjson.o
_json_cfg_decode_max_depth in lua_cjson.o
_json_cfg_encode_number_precision in lua_cjson.o

......

"_lua_typename", referenced from:
_json_append_data in lua_cjson.o
_json_append_number in lua_cjson.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [cjson.so] Error 1

就这样。
另外,我在centos下编译成功的CJSON.OS文件放到lua目录下去,也无法使用

参考技术A 把Makefile里的 CJSON_LDFLAGS = -shared改成CJSON_LDFLAGS = -bundle -undefined dynamic_lookup试试看

Nginx添加openssl模块编译时报错问题

如题所示,报错信息如下:

/bin/sh: line 2: ./config: No such file or directory
make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 127
make[1]: Leaving directory `/usr/local/src/nginx-1.9.9‘
make: *** [build] Error 2


需要说明的是,我这里编译所使用的Nginx源码是1.9.9的。根据报错信息我们知道,出错是因为Nginx在编译时并不能在/usr/local/ssl/.openssl/ 这个目录找到对应的文件,其实我们打开/usr/local/ssl/这个目录可以发现这个目录下是没有.openssl目录的,因此我们修改Nginx编译时对openssl的路径选择就可以解决这个问题了

解决方案:

打开nginx源文件下的/usr/local/src/nginx-1.9.9/auto/lib/openssl/conf文件:

找到这么一段代码:

CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"

修改成以下代码:

CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"

然后再进行Nginx的编译安装即可

参考文章:http://blog.chinaunix.net/uid-2274226-id-5756596.html


以上是关于我的MAC编译LUA-CJSON模块时报如下错误,求大神解答~~!的主要内容,如果未能解决你的问题,请参考以下文章

Nginx添加openssl模块编译时报错问题

mac使用airbyte源码编译时报错compiled by a more recent version of the Java Runtime (class file version 55.0)

如何将 lua-cjson 添加到我的 nginx lua 容器中?

delphi xe 自带的Android Demo程序 编译时正常,但当Run 时报如下错误,请大神帮忙看一下

Laravel 框架在 Mac 上使用命令 npm run dev 时报错问题

mac android studio 编译时报Class JavaLaunchHelper is implemented in both