Macos 无法在osx yosemite上进行枪战。未定义的符号

Macos 无法在osx yosemite上进行枪战。未定义的符号,macos,lua,gnuplot,Macos,Lua,Gnuplot,我尝试在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'. Maki

我尝试在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的输出,请帮助

您正在编译的模块/应用程序似乎不是。它使用
luaL\u checkint
,但lua5.3使用的是
luaL\u checkinteger
。您需要更新模块或使用兼容性开关
LUA\u COMPAT\u apintcasts
LUA\u COMPAT\u 5\u 2
应该可以正常工作,包括
LUA\u COMPAT\u apintcasts
)。

我在使用macports和尝试编译gnuplot(作为latex2rtf的依赖项)时也遇到了同样的问题。最后,修复相对简单

在gnuplot I needed(gnuplot-5.0.1)版本中,在term文件夹中的lua.trm文件中有两个对luaL_checkint的引用:

./term/lua.trm:      t_num = luaL_checkint(L, 1);
./term/lua.trm:      t_num = luaL_checkint(L, 1);
./term/lua.trm:  token_cnt = luaL_checkinteger(L, 1);
将luaL_checkint更改为luaL_checkinteger成功了。有关兼容性问题背后的原因,请参见Paul Kulchenko的答案