- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(这是使用可在网站上下载的 Premake5 alpha 二进制文件)
我正在尝试将我现有的 VS 解决方案移植到使用 premake5。
它使用 MS 风格的预编译头文件 (stdafx.h/stdafx.cpp)。
当我指定这是我的测试项目时:
pchheader "stdafx.h"
pchsource "stdafx.cpp"
它确实将项目设置为使用预编译头文件,但未将 stdafx.cpp 设置为生成预编译头文件 (/Yc)。相反,项目中的所有文件都试图使用 (/Yu) 并且没有人生成 PCH。所以它不会构建..
我猜这确实有效,我在这里缺少什么黑魔法?
这是我的整个 premake5 文件以供引用
-- premake5.lua
solution "Cloud"
configurations { "Debug", "Release", "Final" }
platforms { "Win32_AVX2", "Win64_AVX2"}
location "premake"
flags{"MultiProcessorCompile", "ExtraWarnings", "FatalCompileWarnings", "FatalLinkWarnings", "FloatFast"}
startproject "Cloud"
vectorextensions "AVX2"
filter { "platforms:Win32" }
system "Windows"
architecture "x32"
filter { "platforms:Win64" }
system "Windows"
architecture "x64"
filter "configurations:Debug"
defines { "DEBUG" }
flags { "Symbols" }
filter "configurations:Release"
defines { "NDEBUG" }
flags{"Symbols"}
optimize "Speed"
filter "configurations:Final"
defines { "NDEBUG" }
flags{"LinkTimeOptimization"}
optimize "Speed"
group "app"
--primary executable
project "Cloud"
location "../src_test/cloud"
kind "ConsoleApp"
language "C++"
targetdir "..//%{cfg.buildcfg}"
pchheader "stdafx.h"
pchsource "stdafx.cpp"
vpaths{
{["src/pch/*"] = "../src_test/cloud/stdafx.*"},
{["src/*"] = "../src_test/cloud/**.cpp"},
{["module/*"] = "../src_test/cloud/Module*.h"},
{["core/*"] = "../src_test/cloud/Core*.h"},
{["headers*"] = "../src_test/cloud/*.h"},
--{["src_c/*"] = "../src_test/cloud/**.c"}
}
files { "../src_test/cloud/*.h", "../src_test/cloud/*.c", "../src_test/cloud/*.cpp", "../src_test/cloud/*.hpp" }
一个相关问题:如何禁用项目中特定文件的预编译 header 使用?如果包含 PCH,我的一些文件将无法构建,因此我已在现有解决方案/项目中手动禁用它们。
谢谢!
最佳答案
这可能是因为 pchsource
需要一个文件路径(比如 files
) 因为你的 stdafx.cpp
和你的脚本不在同一个目录, Premake 没有找到它。尝试改用 pchsource "../src_test/cloud/stdafxcpp"
,它应该可以解决问题。
我还看到您没有将 "../src_test/cloud/"
添加为包含目录,这意味着您的 pch header 将使用相对路径包含在内,对吗?如果是这样,您需要更新 pchheader
以反射(reflect)这一点。由于 Visual Studio 的工作方式,您需要设置 pchheader
,因为它出现在您的 cpp 文件中。例如。如果在你的 cpp 文件中你有 #include "../src_test/cloud/stdafx.h"
你需要在 Premake 中使用它:pchheader "../src_test/cloud/stdafx. h"
.
最后,要停用某些文件的预编译 header ,您可以使用过滤器:
-- deactivate precompiled headers for C files
filter "files:**.c"
flags { "NoPCH" }
关于premake5 预编译 header 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466183/
我是 Node9 的作者,Node9 是一个托管的混合操作系统,它结合了 Inferno 和 LuaJIT 以创建交互式分布式开发环境。请参阅此处的项目:https://github.com/jvbu
如何在 premake5 中获取 system() 的当前值?(以及更普遍的功能,如 architecture() 或 platform()) 我尝试打印它,但它是一个函数,当我尝试打印 system
我将 Premake 与 Visual Studio 结合使用。我的项目包含正常的 *.h、*.cpp 和 *.inl 文件。我想强制 Visual Studio 将 *.inl 文件视为 C/C++
我正在尝试开始使用 premake,但我无法让我的测试项目与其正确链接。如果我手动链接它,它可以正常工作。 我在带有 clang 3.4 的 OS X 10.9 上使用 premake 4.3(也使用
我目前正在尝试学习如何使用 premake 4 以便将其应用于 OpenGL sdk .我目前正在尝试制作一个构建 2 个项目的 Visual Studio 2010 解决方案,一个是静态库,另一个包
我正在尝试在运行 Fedora 17 的新计算机上构建 Box2D 库。当我尝试构建 Box2D 时,出现错误 premake4.lua:26: attempt to call global 'vpa
我正在尝试构建 jansson使用预制的 C 库。 图书馆的设计者要求我们: ./配置 制作 进行安装 上述步骤生成构建所需的 jansson_config.h。 我想做的是: ./配置 premak
我正在尝试从 http://www.arcsynthesis.org/gltut/index.html 构建教程而且我似乎无法通过链接部分。这是我转到 Tut 01 文件夹并在之后立即输入“prema
我最近刚刚了解了 Premake 并决定检查一下。 它似乎在 C++ 项目中工作得很好,但由于某些原因,每当它遇到 C# 程序时,它就会跳出。 以这个 Premake 脚本为例: solution "
我有一个预编译脚本。此脚本生成一个 make 文件,然后可用于编译最终的可执行文件。 我想指示premake指示make文件显示最终的gcc/g++命令 例如 g++ main.cpp -l LIBR
预制版本:4.3(已下载 here ) 在 Linux 上运行 make 时,出现以下错误:“g++: x86_64: 没有这样的文件或目录。”从 CFLAGS 中删除 $(ARCH) 后,make
我有一个 C++ 项目,其源文件(.cpp 和 .h 文件)位于名为 src 的目录及其子目录中。我想,一旦我的项目被编译,将所有头文件从这个源文件夹复制到另一个目录,保持 src 的文件夹结构。 我
我目前正在研究 PreMake/CMake。但是,我看不出如何在整个跨平台构建工作流程中使用它。实际上,它会生成 makefile(或解决方案)。那么,您如何在每个目标平台上实际构建这些解决方案?您是
对于我的 C++ 构建过程,我使用 Bakefile ,一个不错的小 Makefile 生成器,它允许您在 XML 中指定构建目标,并且可以从中生成各种 Makefile 或项目文件。它工作正常,我用
我尝试使用带有以下设置的 premake4 编译 TinyXML++(或 TICPP):“premake4 vs2010 [--unicode] [--ticpp-shared] [--dynamic
我在 Premake 中设置了一个项目它由一个 SharedLib 和一个链接到该 SharedLib 的 ConsoleApp 组成。此外,SharedLib 链接到 SFML二进制文件。 我之前设
I have a github repo which has an implementation of premake that works on my main PC, but not on my
似乎总是生成 -O2,除非我在 buildflags 中指定“optimize-speed”(生成 -O3)或“optimize-size”(生成 -Os)。如果我在 buildflags 中未指定任
Google 的 LevelDB 是一个很好的库。然而它只有 linux 的编译文件。它有一些过时的 Windows 端口和说明,如 this one from Microsoft .说明已过时。我希
我希望 Visual Studio 自动检测着色器文件的更改并运行 glslangValidator 作为构建步骤,而不是手动将我的 GLSL 着色器编译为 SPIR-V。我正在使用 Premake
我是一名优秀的程序员,十分优秀!