我是Node9的作者,这是一个托管的混合操作系统,它将Inferno和LuaJIT结合起来创建一个交互式的分布式开发环境。请参阅此处的项目:https://github.com/jvburnes/node9
我创建了一个基本的4.x预制作脚本来编译OSX的所有依赖项和主要源代码,但是现在人们要求为Linux、BSD和Windows构建配置。我有这样的代码,我想要创建预制作配置,以便在这些操作系统上构建和运行Node9。我需要设置库并包括搜索路径、编译器名称以及每个平台的定义。
我知道这是很多问题,但我想做的对。
谢谢。
发布于 2015-06-17 08:55:11
我不是多平台编译方面的专家,但以下是一些可能对您有所帮助的东西。首先,我强烈建议您切换到Premake5。它是稳定的,社区对它的工作是非常活跃的,并且您有对模块(Android :p)和许多其他很酷的特性的支持。
至于你的问题:
premake gmake时,只需告诉premake为gmake构建一个makefile。如果您在Windows、MacOS和Linux上都有premake gmake,那么您可以在所有平台上使用premake gmake。当您实际构建时,您只需要指定配置和平台。我对gmake还不太了解,但看起来可能是这样的:gmake config=release platform=linux32发布于 2015-07-16 16:44:01
有人能告诉我一个好的多平台预制作脚本吗?
如果您查看预制作源代码包,您将看到它在命名为build/gmake.windows和build/gmake.macosx的目录中包含多个makefile,每个平台都包含一个makefile。这是一个选择。
另一种方法是将所有内容放在一个Makefile中,如他的脚本中建议的@Citron,并在进行构建时在命令行上选择所需的配置。在这种情况下,构建命令应该如下所示:
$ make config=debug_win32如果在预先生成的Makefile上运行help目标,它将给出所有有效配置选项的列表:
$ make help或者,如果您不介意要求开发人员在本地安装预制件,他们可以在构建之前为他们的环境生成一个定制的makefile。在这种情况下,您的脚本可能如下所示:
solution "MySolution"
configuration { "Debug", "Release" }
filter { "system:Windows" }
-- windows specific stuff
filter { "system:MacOSX" }
-- mac specific stuff
filter { "system:Linux" }
-- etc.在本例中,运行premake5 gmake将创建针对当前环境的makefile。
发布于 2015-07-09 16:19:57
这是相当接近。我认为一个更接近的答案是在"system:“上使用过滤器。我认为使用premake生成多平台make与使用它构建当前平台makefile之间的区别。
这是目前为止最接近的答案,所以我会投赞成票的。
https://stackoverflow.com/questions/30879561
复制相似问题