问题标签 [premake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1213 浏览

c# - 带有 VS2013 和 C# 的 Premake (v5):“x64”平台未设置为 64 位或甚至在解决方案的配置管理器中构建

我正在使用 premake5 和 VS2013 在 C# 中创建一个 SharedLib。在列出我的项目之前,我在解决方案级别运行以下命令:

这会生成一个解决方案文件以及项目文件。但是,在 VS2013 中打开解决方案并将构建平台设置为 Win64 后,我注意到它没有构建。检查配置管理器后,我注意到我的项目针对 Win32 和 Win64 都设置为 x86。它们甚至没有设置为 Release 或 Debug Win64 版本。然而,它们被设置为在任一 Win32 中构建。我很想发布截图,但我的声誉太低了。

看起来我只是没有正确地将其设置为 64 位。“x64”是要使用的正确字符串吗?预制件只是有一个错误吗?我应该注意,我可以手动将 Win64 设置为 x64,并在打开解决方案后检查配置管理器中的“构建”框。

编辑:我确认问题出在解决方案文件的生成中。GlobalSection(ProjectConfigurationPlatforms) = postSolution 条目的编写如下:

当它们应该写成:

0 投票
1 回答
1061 浏览

premake - premake5:无法获取“Hello World”示例生成 Visual Studio 解决方案

我正在尝试从 wiki 示例中为 premake5 生成解决方案文件。 https://github.com/premake/premake-core/wiki/Your-First-Script

调用 premake5 vs2012 会产生以下错误 - 错误:premake5.lua:2:尝试调用全局“工作区”(零值)

有谁知道如何解决这个问题?看起来 premake5 无法识别 workspace() 函数。我按照安装说明进行操作,并假设我正确下载并解压了控制台实用程序。

0 投票
1 回答
1635 浏览

visual-studio-2015 - 如何在 Premake 5 中选择编译器?

由于MSVC 有一个编译器错误阻碍了我的工作的有效进展,我想切换到英特尔 C++ 编译器。

我在 Premake 中没有看到一种既定的方法来做到这一点。我能找到的最接近的是这个例子,它设置了premake.vstudio.toolset. 我自己尝试过,但没有任何效果,所以我认为这适用于 Premake 快速变化的 API 的过去版本。目前的方法是什么(Premake 5)?

0 投票
1 回答
689 浏览

visual-studio-2013 - Premake 指令将静态库嵌入到静态库中

首先,我使用的是 premake5 和 VisualStudio 2013。请不要因为那个而跳到我身上(因为 premake5 仍然是 alpha 版本)。我已经搜索过但找不到答案,而不是真正有效的答案。

我需要使用 premake 将静态库嵌入到自定义静态库中。我在更新库后转换了一些旧代码,只想将自定义库与应用程序链接起来。我不想将自定义库和它处理的所有其他库链接到应用程序配置。premake5 的其他所有功能都运行良好。

我可以使用链接指令将其链接到应用程序,例如:links { "SDL2", "SDL2main", "SDL2_image" }

这适用于静态库的正常包含,但我需要一种方法将这些示例库嵌入到自定义静态库中。

我可以将 premake 创建的结果项目文件放入 Visual Studio 并手动修改项目以按照我需要的方式添加库,但我不想每次需要重新生成项目时都必须这样做。

我需要的结果是 premake 将以下 XML 生成到项目 xml 文件中的一种方式:

这是在 Visual Studio 中手动编辑项目的结果。我从 x64 构建中添加了库的排除,因为最终我还必须使用这些库的 x64 版本。如果我严重忽略了某些事情,那就太好了,但我需要能够让它发挥作用。

我在这里忽略了一些非常简单的事情吗?

0 投票
1 回答
61 浏览

lua - NaClAMBullet 目标的预制件

我正在尝试从 John McCucatchan github [ 1 ] 编译 Bullet 演示,但没有成功。此存储库中的预制文件设置为仅构建 NaClAMBullet 和 NaClAMTest。所以我修改了 premake64.lua 以针对 NaClAMBullet 而不是 NaClAMTest。但它没有用。

要构建 Makefile,我只需运行以下行:

要构建应用程序,只需键入:

这些操作的结果是以下编译错误:

我究竟做错了什么?这些依赖关系问题是否需要在 premake 文件或其他地方解决?

0 投票
1 回答
394 浏览

lua - 在 Premake 5 中获取 #defines 列表作为令牌或字符串

我正在使用自定义构建命令.asm在我的 C++ 项目中的文件上运行 nasm 汇编程序。我%idef在汇编代码中使用 s 来只编译我需要的代码。我正在检查与#defineC++ 代码中相同的 s 并define()在 Premake 5 中使用来设置它们,但另外我需要在我的自定义构建命令中的命令行调用中将它们传递给 nasm。我正在寻找的是一种将 Premake 内部#defines 列表连接或字符串替换为调用的命令行调用字符串的方法buildcommands()。是否有 Premake Token或内省 lua 变量并从中生成列表的方法?

请注意,我的命令行调用具体是

假设我defines { "FEAT_A", "FEAT_B" }在我的premake5.lua. 然后我想-DFEAT_A -DFEAT_B自动添加到类似于的构建命令中,-DNDEBUG所以我不能简单地插入一个简单的令牌。我想我必须做这样的事情(lua 伪代码,因为我真的不知道语法):

你知道这样的事情是否可能吗?

0 投票
1 回答
761 浏览

c++ - 使用 GCC/GMake 的预编译头文件导致 `pragma` 警告 (Premake)

在我的 Premake 文件中,我去:

我发现这至少部分有效。(Windows 上 ICC 的调用有些不同。)

编译时,我得到一个警告:

我相信这来自 GCC 编译预编译的头文件(好像它是某种主文件)。所以,这个警告(有点?)是有道理的。

我宁愿不删除#pragma once明显存在的内容stdafx.h(尽管我认为这会修复警告),因为构建不使用 PCH。

这是我唯一的选择,还是我还能做些什么?我同时标记了,因为使用其中任何一个的解决方案(例如更改编译参数,以不同方式调用 Premake)都可以。

0 投票
1 回答
299 浏览

visual-studio - 在 Premake 中隐藏项目文件的公共父文件夹

我是 Premake 的新手。我正在使用 Premake 4.4 beta 5,因为 Premake 5 存在一些问题,即它无法生成正确的 VS2010 解决方案(使用 2010 编译器生成 VS2012 解决方案),并且它在一个项目下编写时为所有项目设置 libdirs 和链接。

无论如何,我遇到的问题是我写了一个 Premake 脚本。一切正常,但令人烦恼的是,它在项目中包含的所有文件之间包含多个共同的父文件夹。因此,您必须先打开多个文件夹,其中只包含一个文件夹,然后才能开始操作。这是一张图片,以便您理解:premake_common_parent_folders

我在光盘上的文件夹结构如下所示:

  • 建造
    • premake4.lua
    • premake4.4-beta5.exe
  • 源代码
    • 静态库
      • 包括
        • 例子.h
      • 例子.cpp
    • 测试
      • 例子.cpp

这是我的预制:

我想知道是否有一种方法可以使用单个包含文件夹将实现文件直接放在项目下。隐藏所有项目文件(src 和 [项目名称])之间共有的父文件夹。

希望它看起来像这样:premake_no_common_parent_folders

0 投票
2 回答
1432 浏览

premake - 如何使用 Premake5 清理项目?

我知道如何使用 premake5 生成解决方案和项目,例如 vs2013。但是,如何在不依赖 git clean 的情况下删除所有生成的文件?这可能吗?

0 投票
1 回答
501 浏览

premake - premake如何设置执行目录?

我用Premake 5生成ConsoleApp工程时,调试应用的执行目录和工程一样。如何更改此目录?