支持多个编译器的C++代码

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

在 C++ boost 库中,提供了同步机制,但仅支持非常有限的编译器列表。

我们必须以自己的方式实现同步机制,以便为不同的编译器提供更广泛的支持。换句话说,我们想要编写多平台的 C++ 库。

我对多平台编程和 C++ 领域还很陌生(以前是 Java 人员)。有人可以通过一些简单的例子向我展示如何开始吗?

c++ synchronization cross-platform
3个回答
3
投票

虽然 Boost 可能无法为您提供现成的解决方案,但它包含了大量信息和工具来处理不同的编译器。我建议您查看他们如何管理它,看看是否可以利用他们的一些代码。在你的位置,我将从 Boost.Config开始。


1
投票

对于 Windows,使用事件和临界区。对于 UNIXy 平台,使用 pthreads 互斥体和条件变量。这些应该适用于支持这些平台的任何编译器。

您需要支持哪些编译器? Boost 的同步方法支持几乎所有您可能使用的编译器,包括 GCC、Intel 的 C++ 编译器和 Microsoft Visual Studio。


0
投票

Boost 已经制定了能够将 posix 和 windows 同步映射到跨多个编译器的一致接口的设计概念。您是否考虑过扩展 boost 框架以在您想要的平台上工作?

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