使用qmake开发跨平台C ++静态库(通过Mac上的Qt creator IDE)

时间:2011-11-12 12:30:37

标签: c++ cross-platform qt-creator qmake

我正在开发一个适用于所有平台(linux,mac和windows)的库。该库基于Qt,它是一个跨平台的用户界面库。我正在使用Mac开发这个库。我开发的当前版本是一个静态库(.a),适用于Linux和Mac。这个.a library是否也适用于Windows(假设使用Visual Studio),或者我是否必须为此创建单独的库类型?如果是的话,如何从我的Mac创建Windows静态库?为了您的信息,我使用QtCreator IDE来创建静态库。一个简单的指南/代码示例/有用的链接将非常有用。

1 个答案:

答案 0 :(得分:3)

首先,如果您想编写跨平台软件,则需要在目标平台上进行测试。如果您没有要测试的Windows计算机,那么您可以亲吻Windows兼容性。

其次,Windows确实有静态库,但它们使用.lib扩展名而不是.a。像qmake这样严肃的构建系统应该能够解决这个问题。如果你告诉它生成一个静态库,它将在Windows上生成.lib,在其他平台上生成.a。

当然,要使用任何,它必须使用与链接到的程序相同的编译器进行编译。

如果使用GCC(或MinGW,GCC的Windows端口)生成.lib文件,则无法将其链接到Visual Studio项目,因为它们使用不同的ABI,不同的标准库实现和不同的运行时(并且因为MSVC .lib文件的格式没有记录,并且在编译器版本之间发生了变化。)

但是,由于qmake适用于大多数编译器,因此使用Visual Studio生成.lib文件应该没有问题。

相关问题