创建跨平台 C++图书馆

发布于 2024-08-24 04:32:28 字数 238 浏览 3 评论 0原文

我想创建一个跨平台的 2D 游戏引擎,并且我想 知道如何使用 Makefile 创建跨平台项目,因此我可以使用针对任何平台的自定义规则将其编译到我选择的平台。 我正在使用 Visual C++ Express 2008 在 Windows 环境下工作,所以这会很好 如果我可以使用 Visual C++ Express 作为 IDE。

我的平台还包括任天堂 DS 和 PC。

请指导我该怎么做。

预先感谢,塔米尔。

I wanted to create a cross-platform 2D game engine, and I would like to
know how to create a cross-platform project with Makefile, so I can compile it to the platforms I choose with custom rule for any platform.
I'm working on the windows enviroment with Visual C++ Express 2008, so it would be nice
if I can use Visual C++ Express as the IDE.

My platforms are YET the Nintendo DS and the PC.

Please instruct me what to do.

Thanks in advance, Tamir.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无畏 2024-08-31 04:32:28

不要使用 make,使用像 cmake 这样的跨平台工具,它会为您处理特定于平台的生成。与在 Windows 上一样,它将生成项目文件以使用 Visual Studio;在 Linux 上,它将为您生成 GNU make 文件。您可以对其进行设置以找到正确的库和所有内容的正确版本。 Cmake 很棒。

CMake 不是编译器(make 也不是)——它是一个跨平台构建自动化系统。它允许您在任何平台上进行开发,并且默认假设您正在为正在运行的平台进行开发。如果你想做其他事情,你可以指定参数。然而,大多数“跨平台”的东西仍然留给你的代码。我还推荐一个已经在许多平台上测试过的库,例如 Boost。使用 Boost 可以帮助您的所有代码在任何系统上顺利运行,并且使用它基本上没有任何开销。

Don't use make, use a cross-platform tool like cmake, it will take care of the platform-specific generation for you. Like on Windows, it will generate the project files to use Visual Studio; on Linux, it will generate the GNU make files for you. You can set it up to find the right versions of the right libraries and everything. Cmake is great.

CMake is not a compiler (neither is make) - it is a cross-platform build automation system. It allows you to develop on any platform and it defaults to assuming you're developing for the platform you're running. You can specify parameters if you want to do other things. However, most of the "cross-platform" stuff is still left to your code. I would also recommend a library that has been tested on many platforms, like Boost. Using Boost can help keep all your code working smoothly on any system and there is basically no overhead to using it.

苦笑流年记忆 2024-08-31 04:32:28

我知道您可以使用 Makefile 来执行 #defines,这又是交换代码块的常见技巧。还有一些方法可以检测平台,尽管这主要针对 Mac/Windows/Linux 差异。

而且,特拉维斯可能是对的;让你的 makefile 本身是跨平台的真的很棒,因为这样设置构建服务器和其他东西就更容易了。

I know you can use Makefiles to do #defines, which is, in turn, a common trick for swapping out chunks of code. There are also ways to detect the platform, although that's mostly for Mac/Windows/Linux differences.

Also, Travis is probably right; having your makefiles themselves be cross-platform is really excellent, since it's easier to then setup build servers and things.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文