【问题标题】:Compiling latest release of CppUTest (3.7) with MinGw, pthreads missing使用 MinGw 编译最新版本的 CppUTest (3.7),缺少 pthreads
【发布时间】:2015-11-30 04:31:43
【问题描述】:

我正在尝试在 Windows 中使用 CppUTest,第一步是让它工作,但我已经遇到了问题。这些是我尝试过的事情:

第一种方法

使用 CMake,使用 cmake GUI 我可以执行配置和生成命令,并且在输出目录中得到一些东西,但没有二进制文件和库,只有一堆 cmakefile。 CMake GUI 说在配置和生成步骤期间一切正常,但是在输出目录中没有生成库(.lib 文件)......我有什么遗漏吗?我以前从未使用过 CMake。

第二种方法

单独使用 MinGW 和 msys,在 Windows 中运行 cmd 并通过在 Windows 终端中键入 sh 来执行 MinGW shell,然后执行以下命令:

cd <CppUTest folder>
mount c:\mingw /mingw
./autogen.sh
./configure
make

构建过程开始,但失败并显示一条消息,指出在 MinGW 目录中找不到 pthread.h。如果我使用 MinGW 包管理器安装 pthread-win32 包并重复与上述相同的步骤,则构建过程开始但失败并显示一条消息,指示结构 timespec 在 time.h 和 pthread.h 中定义。

我已经尝试在 CppUTest 3.6 中遵循相同的过程,它工作得非常好,我得到了 .lib 文件,所以我想我现在必须继续这样做。

有人知道如何使用 MinGW 或 CMake 构建 CppUTest 3.7(最新版本)吗?

【问题讨论】:

  • The CMake GUI says everything went OK during the configuration and generation steps - 这个 CMake 步骤在某种程度上等同于 autotools 中的 ./autogen.sh 加上 ./configure。那么你应该像往常一样使用make
  • 我会在我下班的时候尝试一下......并在这里发布结果。
  • 如果我在 CMake 的输出目录中使用 MinGw 中的 make.exe 或 mingw32-make.exe 它开始构建,但我得到相同的 pthread 缺失错误。有没有人设法使用 MinGW 构建 CppUTest 3.71?
  • 谷歌搜索显示,Windows 下 MinGW 的 pthread 支持问题由来已久,尚未完全解决。参见,例如,this question
  • 好吧,我让它工作,至少构建。我下载了 MinGW 的 pthreads 包,我通过在 CppUTest 源代码中添加两行预处理器来处理 timespec 重新定义。在确认这个工作之前,我会尝试用 CppUTest 做一些事情。

标签: cmake mingw cpputest


【解决方案1】:

最后我使用 Cygwin 编译它,我找不到用 MinGW 正确编译它的方法,我添加了一个肮脏的技巧让它在 MinGW 下编译(处理 timespec 重新定义)但很可能会这样引起问题。

只要确保你也使用 Cygwin 来编译你的测试,这是我在提出这个问题 (https://www.youtube.com/watch?v=oVmd0P85D8o) 后发现的。

【讨论】:

    猜你喜欢
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多