如何使用GUI将外部库和项目导入到我的C++项目中

How to import external libraries and projects into my C++ Project with the GUI?

本文关键字:项目 导入 C++ 我的 GUI 何使用 外部      更新时间:2023-10-16

好吧,所以我了解Java,并且已经在libGdx上玩了很长一段时间了。C++似乎是游戏开发行业的"需要了解的语言",由于我毕业后想成为一名游戏开发人员,我决定学习这种语言只会有益。我已经学习了记忆管理的基础知识,并通过以下方式应用了我的知识:;

  1. 学习如何解析复杂的文本格式(你知道,任何比xml更复杂的东西)
  2. 为一种伪语言编写一个解析器,我可以用它序列化C++对象,并表达基本的数学和命令/函数功能

现在我想运用我的知识做一些更有趣的事情;做一个小游戏!我宁愿把学习微处理器和GPU的工作方式推迟到大学,所以我需要使用某种框架。要做到这一点,我需要能够从外部库导入代码。在Java中,我们通常将库放在libs文件夹中,该文件夹通过使用花哨的maven/gradle设置链接到核心项目。

我设置了GCC编译器,下载了最新的Code::Blocks二进制文件,并将它们安装在我过时的Windows笔记本电脑上(我不得不单独下载编译器和IDE,这真是一个令人讨厌的惊喜,因为我是一个Eclipse男孩)。我使用代码的原因是:块而不是Visual Studio C++?

我身无分文,买不起快递,Community仍然有两次该死的演出,在寒冷的冬日里像糖蜜一样上坡(我的电脑只有两次RAM,因为我太便宜了,无法在一台使用寿命大约为1年的笔记本电脑上多加200美元),而Code::Blocks是500兆欧,运行起来很有魅力。

不管怎样,我已经说够了,问题是在Java中,我们只需在任何自尊的IDE中点击几下就可以导入外部库。C++似乎有所不同。我在谷歌上搜索了几个能充分满足我需求的库,因为我只需要一个渲染库。Oxygine似乎是最好的,Angel2D是我名单上的第二个。我在谷歌上搜索了雅虎,但发现用处不大。事实上,C++似乎缺乏"导入"外部库的概念。#import似乎只适用于核心语言库和项目文件。我发现最接近的是动态加载库,但这一点还不清楚。

C++和Java中的故事没有太大的不同(尽管#include在C++中的工作方式与import在Java中的工作方法截然不同)。在这两种情况下,都有:

  • 编译时使用的符号
  • 运行时使用的定义/实现

Java中的import语句和C++中的#include语句有效地处理了第一个。在这两种语言中,第二种是如何配置/调用/绑定代码的结果;在Java中,哪个*.jar文件实际最终提供导入的符号是由"类路径"决定的,而在C++中,它取决于特定的链接器(对于GCC,传递-lname表示库的名称,-Lpath/to/dir指定要查找的候选目录,尽管各种环境变量可以覆盖最终加载的实际库)。

虽然拖放在某些IDE中可能有效,但这确实不是一个好的解决方案(无论是对C++还是Java来说),因为IDE特定的构建系统很难自动化、复制或与其他开发人员共享。您会发现,在行业中,使用构建系统(如Bazel、Gradle、CMake或Make)创建命令行构建配置要常见得多。这些系统使用的配置更容易在IDE之间共享,更重要的是,可以很容易地被连续集成/测试系统调用。大多数IDE支持添加一个构建/测试步骤,该步骤只需调用任意命令即可运行这些构建系统。如果进行了设置,只需编辑构建配置即可添加新的库依赖项。

*很抱歉让人失望,但我已经在Windows上尝试了几个C++IDE,但我不知道其中任何一个可以让你简单地在其中拖放库。