Premake5不会在FreeBSD 10.1上构建

时间:2015-07-01 19:04:27

标签: lua premake

我试图从源代码在FreeBSD 10.1上构建Premake5。我最终通过删除" -dl"来编译它。选项并明确使用gmake进行构建。它构建了,但我无法做任何事情,但吐出以下错误消息。与我如何调用它无关。即使在&premake5 --help'。

上也会崩溃

这里有消息:

PANIC:调用Lua API时无保护错误(尝试调用字符串值)

1 个答案:

答案 0 :(得分:2)

代码是错误的,因为所有的出局。首先假设linux是posix,但事实并非如此。他们在所有地方使用linuxism,因此转换为posix将是一项非常重要的任务,直到完成它将永远不会令人满意地在基于非Linux posix的系统上工作。

-ldl显然是第一个绊脚石。下一个是premake_locate_executable中的premake.c函数。在这里,他们正在使用/proc文件系统,这是一个linuxism,因为这在BSD上失败了,他们又回到了一些lua方法,但他们似乎假设lua_tostring弹出相应的值,它没有&# 39;吨。由于它们的堆栈在此函数中没有平衡,因此以下lua_call试图调用它们在堆栈中留下的垃圾而不是它们想要的函数。

即使在我解决了这个问题之后,他们也会使用getconf _NPROCESSORS_ONLN来获取make构建多个作业的核心数量,但是他们实际上并未检查此调用是否成功(它没有成功)在Linux和MacOSX之外。)

在解决了这个问题后,我遇到了一个问题,即他们的makefile不是常规make,而是GNU-make,所以我不得不改为使用gmake来尝试构建。

从那时起,它刚刚解开,因为contrib目录中的预制文件都没有为BSD配置,尽管它是合法的配置目标之一(即它不默认为{{1这些组件没有配置。

TLDR:BSD不是受支持的平台