好的,所以我认识Java并且已经在libGdx上摆弄了很长一段时间。 C ++是"语言知道"在游戏开发行业,似乎,因为我想在毕业时成为一名游戏开发人员,我已经确定学习这门语言不过是有益的。我已经学习了记忆管理的基础知识并且已经应用了我的知识;
现在我想运用我的知识做一些更有趣的事情;制作一个小游戏!我宁愿推迟学习微处理器和GPU如何工作直到〜大学,所以我需要使用某种框架。为此,我需要能够从外部库导入代码。在Java中,我们通常将库放入libs
文件夹中,该文件夹通过使用花哨的maven / gradle设置链接到核心项目。
我设置了GCC编译器并下载了最新的Code :: Blocks二进制文件,并将它们安装在我过时的Windows笔记本电脑上(我不得不单独下载编译器和IDE,因为我是一个Eclipse男孩)。我使用Code :: Blocks而不是Visual Studio C ++的原因是什么?
我破产了,买不起快递,社区仍然是2个frickin演出,在寒冷的冬日像糖蜜一样上山跑(我的电脑只有2演出RAM,因为我太便宜了,不能额外支付200美元一台笔记本电脑的寿命大约为1年,而Code :: Blocks则为500兆,并且像魅力一样。
无论如何,我的咆哮,问题是在Java中我们可以在任何自尊的IDE中点击几下导入一个外部库。 C ++似乎有所不同。我搜索了几个可以充分满足我需求的库,因为我只需要一个渲染库。 Oxygine似乎是最好的,Angel2D是我名单上的第二个。我做了some googling yahooing但发现很少使用。事实上,似乎C ++缺乏“导入”的概念。外部图书馆。 #import
似乎只适用于核心语言库和项目文件。我发现的最接近的是dynamically loading libraries,但即便如此也不清楚。
答案 0 :(得分:1)
C ++和Java中的故事在这里并没有什么不同(尽管#include
在C ++中的工作原理与import
在Java中的工作方式有很大不同)。在这两种情况下,都有:
Java中的import
语句和C ++中的#include
语句有效地处理了第一个语句。在这两种语言中,第二种语言是代码配置/调用/捆绑的结果;在Java中,* .jar文件实际上最终提供导入的符号由“classpath”决定,而在C ++中,它依赖于特定的链接器(对于GCC,传递-lname
表示库的名称,并且-Lpath/to/dir
指定要查找的候选目录,尽管各种环境变量可以覆盖最终加载的实际库。
虽然拖放可能在某些IDE *中有效,但这对于C ++和Java来说都不是一个很好的解决方案,因为IDE特定的构建系统很难自动化,重现或与其他人共享开发人员。您会发现,在行业中,使用Bazel,Gradle,CMake或Make等构建系统创建命令行构建配置的情况更为常见。 。这些系统使用的配置更易于在IDE之间共享,重要的是,可以通过持续集成/测试系统轻松调用。大多数IDE都支持添加一个构建/测试步骤,只需调用任意命令即可运行这些构建系统。如果进行了设置,只需编辑构建配置即可添加新的库依赖项。
*很抱歉让人失望,但我在Windows上尝试了几个C ++ IDE,而且我不知道它们中的任何一个会让你简单地将库拖放到其中。