跨平台构建库而无需运行所有平台

时间:2009-02-13 06:38:39

标签: c++ build cross-platform makefile

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

有没有办法从一个平台构建所有3个平台?一段时间以来我一直反对这个问题,迄今为止的研究表明它不容易(或可行)完成。代码只需要链接定义插件的单个头 API是基于相当基本的Makefile构建的(目前每个平台的变化很小)。

3 个答案:

答案 0 :(得分:2)

你应该看看交叉编译。

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

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

答案 1 :(得分:1)

迟到总比没有好,我刚遇到IMCROSS

看起来很有前途!

答案 2 :(得分:0)

对于Linux,使用VMWare设置甚至下载虚拟机​​相当容易。让OSX在VMWare上运行有点棘手但可能。

运行VMWare并在本地驱动器上共享目录,您甚至可以使用相同的文件为不同的平台进行编译。

OSX的某个地方有一个交叉编译器,但我不相信它的质量很好。