使用 Mingw 编译器编译谷歌测试框架

Posted

技术标签:

【中文标题】使用 Mingw 编译器编译谷歌测试框架【英文标题】:Compiling google test framework with Mingw compiler 【发布时间】:2012-01-26 18:21:14 【问题描述】:

我有一个 Qt 项目,我想使用 google 测试框架 GoogleTestFramework 来进行 google 测试。该框架在 Linux 上编译良好。

我已经设法使用以下链接中提供的提示在 Windows 上编译库: Installing Gtest without pthreads

以下建议不要让我编译库,因为 pthreads 会导致错误: Sackoverflow compiling with MSYS

我有:

用于 make.exe 的 GNU Make 3.81 用于 mingw32-make 的 GNU Make 3.82 CMake 2.8.7 QT 4.7.4 Qt MingW gcc v 4.4.0

当我尝试编译我的测试项目时,我收到一条错误消息: 未定义对“__chkstk_ms”的引用 未找到文件:gtest-all.cc

这是我的qmake项目代码(我已经简化了代码)。

QT       += core gui

DEPENDPATH += . headers src ../FastTrans/headers ../FastTrans/src ../FastTrans/forms      C:/MinGW/msys/1.0/home/zakharan/gtest-1.6.0/include
INCLUDEPATH += . headers src ../FastTrans/headers ../FastTrans/src ../FastTrans/forms     C:/MinGW/msys/1.0/home/zakharan/gtest-1.6.0/include

TARGET = tstall
#CONFIG   += console
#CONFIG   -= app_bundle

TEMPLATE = app

HEADERS += ../FastTrans/headers/shortcutsactionsitem.h \
../FastTrans/headers/shortcutsactionsmodel.h \
../FastTrans/headers/isavesettings.h

SOURCES += ../FastTrans/src/shortcutsactionsitem.cpp \
../FastTrans/src/shortcutsactionsmodel.cpp \
../FastTrans/src/isavesettings.cpp \
src/tstshortcutsactionsitem.cpp \
src/tstshortcutsactionmodel.cpp

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

win32: LIBS += C:/MinGW/msys/1.0/home/zakharan/gtest-1.6.0/mybuid/libgtest.a
win32: LIBS += C:/MinGW/msys/1.0/home/zakharan/gtest-1.6.0/mybuid/libgtest_main.a

【问题讨论】:

只是想知道用 MingW 编译它是否比 Cygwing 有优势。 据我了解 Cygwing 它不是编译器。换句话说,将无法用它编译我的应用程序,因此它可以在 Windows 中运行。 Cygwin GCC 可以真正编译代码,但它使用库文件形式的 POSIXWinAPI 适配层,这会稍微减慢生成的程序。 【参考方案1】:

Google 为 compiling in Windows 推荐以下内容:

### Windows Requirements ###

  * Microsoft Visual C++ 7.1 or newer

### Cygwin Requirements ###

  * Cygwin 1.5.25-14 or newer

我听说有人使用 MingW 来编译这个。据说使用 MingW 编译可能会快一点,因为操作系统和应用程序之间不需要有可比性层。

但是,由于这仅用于开发测试目的,Cygwin 就足够了。只需下载 Google 推荐的版本即可。


另请参阅:

Compile Cygwin project in Eclipse

How Cygwin compares to MingW for porting Linux applications to Windows

【讨论】:

但是我不确定用 Cygwin 编译我的 qt 项目是否容易。

以上是关于使用 Mingw 编译器编译谷歌测试框架的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Windows 上使用 MinGW 编译 google 测试

使用 cmake 和 mingw-w64 错误编译测试程序

windows+mingw编译CTK框架

使用 Mingw-w64 交叉编译 CGAL

cmake msys2 mingw无法编译简单的测试程序

MinGW gcc C 编译器可以工作,但 g++ 不能