c++ - 如何编写可以在 Linux 和 Windows 中轻松编译的 C++ 程序?

标签 c++ c windows linux platform

我正在制作一个 C++ 程序。

我对 C++ 最大的不满之一是它所谓的平台独立性。

你们可能都知道,在 Windows 中编译 Linux C++ 程序和在 Linux 中编译 Windows 程序几乎是不可能的,而没有大量的神秘错误和特定于平台的包含文件。

当然你可以随时切换到像 Cygwin 和 wine 这样的仿真,但我问你,真的没有别的办法吗?

最佳答案

语言本身是跨平台的,但大多数库不是,但是如果您想在使用 C++ 编程时完全跨平台,则应牢记三件事。

首先,您需要开始使用某种跨平台构建系统,例如 SCons .其次,您需要确保您使用的所有库都是跨平台的。 第三点,我建议使用所有目标平台上都存在的编译器,gcc想到这里(C++ 是一个相当复杂的野兽,所有编译器都有自己的特定怪癖)。

我有一些关于图形用户界面的进一步建议给您。其中有几种可供使用,其中三个最值得注意的是:

GTK+QT是两个带有自己的小部件集(按钮、列表等)的 API,而 wxWidgets更多的是对当前运行的平台 native 小部件集的包装 API。这意味着与系统的其他部分相比,前者看起来可能会有些不同,而后者看起来就像一个原生程序。

如果您从事游戏编程,那么同样有许多 API 可供选择,而且它们都是跨平台的。我所知道的最全面的两个功能是:

两者都包含从图形到输入和音频例程的所有内容,无论是通过插件还是内置的。

另外,如果你觉得 C++ 的标准库有点欠缺,请查看 Boost用于一些通用的跨平台甜蜜。

祝你好运。

关于c++ - 如何编写可以在 Linux 和 Windows 中轻松编译的 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478298/

相关文章:

python - Pip 安装在 Windows 上引发 UnicodeDecodeError。使固定?

windows - Windows Communication Foundation 的 Linux/Mac OS X 等价物

windows - 在Golang中运行Windows命令

java - 内存泄漏使用 JNI 将数组从 C++ 发送到 Java

c - 在 C 中反转 2 的幂的最快方法是什么?

c++ - MFC...如何更改名称

c - 如何在 C(Linux) 中获取 'randomize()' 随机数?

c++ - 使用 C 语言通过贝塞尔曲线平滑粗糙多边形的算法

c++ - 检测到堆损坏 : private array

android opencv - 是否有可能在每次旋转时捕捉到对 3D 对象的不同点击?