c++ - 跨平台构建库而不运行所有平台

标签 c++ build cross-platform makefile

我有一小段代码,可以用作较大图形应用程序的插件。开发平台是Qt,带有c++代码。我已经成功地分别为 linux、MacOS 和 Windows 构建了 .so、.dylib 和 .dll,但要做到这一点,我必须有一台运行每个操作系统的机器(在我的例子中,本地运行 linux [ubuntu] gcc,以及虚拟机中的 Windows MinGW 和 MacOS XCode gcc)。

有没有一种方法可以从一个平台构建所有 3 个平台?不久前,我为这个问题绞尽脑汁,迄今为止的研究表明,这并不容易(或可行)完成。代码只需要链接到定义插件的单个 header API 是从相当基本的 Makefile 构建的(目前每个平台都有很小的变化)。

最佳答案

你应该看看交叉编译。

您基本上构建了一个编译器(在您当前的平台上)将为您所需的平台输出二进制文件。

尝试this link关于在 Linux、Windows、使用 QT 上执行此操作

关于c++ - 跨平台构建库而不运行所有平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544946/

相关文章:

c++ - 为什么我们可以非常量引用一个临时对象并延长它的生命周期?

c++ - 调整 QGLWidget 的大小以适应我拥有的每个 Sprite 大小

c++ - 这些用法有什么区别 : new SubElement() and SubElement()?

c - 在动态链接时,动态加载器是查看所有目标文件的定义,还是仅查看可执行文件指定的目标文件?

c++ - 如何构建像 Thunderbird 这样的应用程序?我应该选择哪种语言?

git - Git 处理 CRLF(回车、换行)的策略是什么?

C++ 观察者模式监听器事件方法/类或信号和槽

Android Gradle 任务在构建后复制文件

java - 尝试构建时 java 控制台 boolean 错误

user-interface - 使用 ZeroMQ 进行跨平台开发?