使用 qt 和 cygwin 的编译器编译独立应用程序

Posted

技术标签:

【中文标题】使用 qt 和 cygwin 的编译器编译独立应用程序【英文标题】:Compile standalone application using qt with cygwin's compiler 【发布时间】:2014-08-29 10:51:58 【问题描述】:

我使用 cygwin 编译静态库并安装它。这是 libs 也可以用 mingw 编译,但这是硬核方式。我可以使用 cygwin bash 编译我的代码,但是这个 exe 使用 cygwin1.dll 并且不能是独立的。 所以,我试图用带有这个库的 MINGW 用 QT 编译独立的 exe。我想,我可以使用这个 cygwin 的编译器,但我找不到任何关于它的信息。

编译后我有这个错误:

错误:未定义对 ctime_r 的引用 错误:未定义对 __xpg_strerror_r' 的引用

我在 Windows 上使用 QT5。

【问题讨论】:

【参考方案1】:

听起来您使用一个编译器工具链 (cygwin) 构建了库,而现在您想使用不同的工具链 (mingw) 构建应用程序。这一般是行不通的。不同工具链创建的目标文件和静态库往往无法链接在一起。从技术上讲,它们具有不同的应用程序二进制接口 (ABI)。 MinGw 网站对此有很好的详细解释,Interoperability of Libraries Created by Different Compiler Brands。

【讨论】:

感谢您的回答。有没有办法交朋友QT Creator和Cygwin的g++?

以上是关于使用 qt 和 cygwin 的编译器编译独立应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在linux下,QT怎样编译出windows程序

如何在 Windows 上使用 QT Creator 独立编译?

在 Windows 8 上使用 Qt-creator 构建(编译)一个基本的独立 .exe 应用程序

Cygwin工具编译Ardupilot方法

使用 Cygwin 和 Intel Parallel Studio 编译 IPOPT

CLion 不识别 Cygwin 编译器