我尝试在osx yosemite(10.10.4)下制作gunplot 5.0.0,并且出现错误:
$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in config
make[2]: Nothing to be done for `all'.
Making all in m4
make[2]: Nothing to be done for `all'.
Making all in term
make[2]: Nothing to be done for `all'.
Making all in src
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in wxterminal
make[4]: Nothing to be done for `all'.
Making all in qtterminal
make[4]: Nothing to be done for `all'.
c++ -g -O2 -o gnuplot alloc.o axis.o breaders.o boundary.o color.o command.o contour.o datablock.o datafile.o dynarray.o eval.o external.o fit.o gadgets.o getcolor.o graph3d.o graphics.o help.o hidden3d.o history.o internal.o interpol.o libcerf.o matrix.o misc.o mouse.o multiplot.o parse.o plot.o plot2d.o plot3d.o pm3d.o readline.o save.o scanner.o set.o show.o specfun.o standard.o stats.o stdfn.o tables.o tabulate.o term.o time.o unset.o util.o util3d.o variable.o version.o -lreadline -lncurses -lz -llua -liconv
Undefined symbols for architecture x86_64:
"_luaL_checkint", referenced from:
_LUA_GP_int_error in term.o
_LUA_GP_int_warn in term.o
(maybe you meant: _luaL_checkinteger)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [gnuplot] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
似乎与lua有关。这是我的lua env:
$ lua -v
Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
我不明白make的输出,请帮忙!
答案 0 :(得分:3)
您正在编译的模块/应用程序似乎不是Lua 5.3-compatible。它使用luaL_checkint
,但Lua 5.3使用luaL_checkinteger
。您需要更新模块或使用兼容性开关LUA_COMPAT_APIINTCASTS
(LUA_COMPAT_5_2
应该有效,并且包括LUA_COMPAT_APIINTCASTS
)。
答案 1 :(得分:1)
使用macports并尝试编译gnuplot(作为latex2rtf的依赖项)时,我遇到了同样的问题。最后修复相对简单......
在我需要的gnuplot版本(gnuplot-5.0.1)中,在术语文件夹中找到的lua.trm文件中有两个对luaL_checkint的引用:
//from the XPathNavigator object, we call the SelectSingleNode method, to select a single
//node using the specified xpath query and then call the GetAttribute method to finally
//get the value attribute from that element
String email = foo.SelectSingleNode(xpathQuery).GetAttribute"value",nsmgr.DefaultNamespace);
将luaL_checkint更改为luaL_checkinteger就可以了。有关此兼容性问题背后的原因,请参阅Paul Kulchenko的答案。