windows - 使用 Mingw 编译器编译 google 测试框架

标签 windows qt mingw googletest

我有一个 Qt 项目,我想使用谷歌测试框架 GoogleTestFramework为了做谷歌测试。该框架在 Linux 上编译良好。

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

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

我有:

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

当我尝试编译我的测试项目时,我收到一条错误消息: 对“__chkstk_ms”的 undefined reference 找不到文件: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

最佳答案

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

关于windows - 使用 Mingw 编译器编译 google 测试框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9023200/

相关文章:

windows - 无法让 memcached 在 Windows 中工作

c++ - 使用任何 c++ 函数作为 Qt 插槽

c++ - Qt Creator 4.3.1 未检测到 MSVC 2015 编译器

c++ - 将链表从 C 传递到 C++

c++ - GCC 警告将函数指针转换为对象指针

python - 如何让 pyflakes 在 Windows 上运行?

c - 仅删除句子中的字母字符

c - GTK+/GCC 启动时崩溃

在windows下编译带有unix风格头文件的C程序

node.js - Node Windows-在登录屏幕上运行GUI应用