OpenGL SDK如何使用Premake创建新项目

问题描述 投票:0回答:1

我最近开始学习OpenGL的过程,开始使用C ++制作一些图形应用程序。我已经安装了OpenGL SDK,我能够正确地构建项目。但是,在OpenGL SDK站点上,几乎没有关于如何使用SDK的元素创建新项目的信息,例如freeglut等。我有Premake 4.0,我知道我必须做一些事情。 lua文件,我不知道lua但是我不知道如何使用Lua文件来创建一个新项目。那你能救我一下吗?我在使用VS2010,我应该创建项目,然后用premake做一些事情吗?或者创建某种lua文件,然后使用premake?任何帮助都会很棒,因为我非常迷失,并且非常想开始使用OpenGL。我已经对此进行了很多实验,例如从sdk复制lua文件,但没有运气。

visual-studio opengl sdk lua premake
1个回答
4
投票

如果您不熟悉Premake4,那么我强烈建议您直接使用Visual Studio项目。如果您遇到问题,请完整修改您的问题,以及Visual Studio在尝试构建时给出的错误消息。你应该包括:

  • 包含路径。完整的包含路径集,包括完整的绝对目录名称(包括项目路径和解决方案文件)。
  • 静态库搜索路径。
  • 您包含的静态库。
  • 您正在构建的定义。

注意:如果您不知道这些是什么,那么您需要停下来学习更多有关C ++项目如何工作的知识。您需要了解编译器如何处理包含路径,静态库,#define等。


如果您不熟悉Premake4,并且仍然希望将Premake4与SDK一起使用,那么首先必须熟悉不带SDK的Premake4。我可以给你一个完整的premake4.lua脚本,你可以插入,更改几行,一切都神奇地工作(如果你想要,你可以看看SDK的例子是如何构建的。特别是examples/premake4.lua)。但如果我这样做,你就不会学到任何东西。你只需复制并粘贴代码,而不必对其工作原理有任何了解。

相反,我将告诉您应该采取哪些步骤来学习如何使用Premake4。

第1步:Hello World,Premake风格。您应该创建一个Hello World应用程序的.cpp文件。它只有一个标准的main功能,可以在控制台上打印“Hello World”。这很容易。

困难的部分是Premake4脚本。您不必直接创建Visual Studio项目,而是编写Premake4脚本来为您构建该项目。

Premake4文档可以引导您完成制作first solution and project的步骤。你当然需要add files to that project。您还应该使用learn how to use configurations,以便可以进行调试和发布构建。 Debug构建应该有符号,并且应该优化Release构建。

第2步:多个项目。在这里,你有两个.cpp文件:test.cppmain.cpp。在test.cpp中,放置一个打印东西的函数。该功能不应该采取参数或任何东西。在main.cpp中,你应该有main函数来调用test.cpp中定义的函数。还应该有一个test.h,其中包含test.cpp中定义的函数的原型。

这里的诀窍是你没有将它们编译成相同的可执行文件。不是直接的。你想要两个项目:一个名为test,另一个名为maintest项目应该是一个静态库,它编译test.cppmain项目将是实际的可执行文件,它编译main.cpp。它们都应该在文件列表中包含test.h

在这里,您了解到解决方案可以有多个projects。这两个项目有不同的文件列表。每个项目都可以有一个单独的kind,它仅确定该项目的构建类型。 test项目应该是StaticLib,而main项目应该是ConsoleApp

您还需要学习使用links命令将它们链接在一起。 main项目应该使用links来指定testtest不需要链接到某些东西。

第3步:掌握目录。

在这里,您将执行与步骤2相同的操作。除了一件事:将test.htest.cpp放在不同的目录(当前目录的子目录)中。您还需要该目录中的test.lua文件,您将使用premake4.lua命令从主dofile文件中执行该文件。 test.lua是您定义test项目的地方。使用dofile命令创建解决方案后,您可以随时在test.lua文件上调用solution

请注意,main项目需要更改找到test.h的目录。您还需要在includedirs项目中使用main命令告诉编译器在哪里搜索test.h中包含的main.cpp头。

第4步:返回SDK。在这一点上,你现在应该对Premake4足够熟悉,回顾一下instructions I pointed you to并更好地理解它们。然后,按照说明说的做。当它告诉您脚本的第一行应该是什么时,请将其作为脚本的第一行。将UseLibs功能放在它所说的位置;它甚至可以为您提供一个示例。把UseLibs想象成linksincludedirs的奇特组合。

© www.soinside.com 2019 - 2024. All rights reserved.