无法在 Windows 上使用 MinGW 编译 google 测试
Posted
技术标签:
【中文标题】无法在 Windows 上使用 MinGW 编译 google 测试【英文标题】:Can not compile google test with MinGW on Windows 【发布时间】:2016-09-17 17:12:16 【问题描述】:我尝试按照this post 的说明在Windows 上使用MinGW 编译google 测试框架,但在执行make
时出现错误:
[ 25%] Building CXX object CMakeFiles/gtest.dir/src/gtest-all.cc.obj
In file included from d:/downloads/googletest-master/googletest/src/gtest-all.cc:45:0:
D:/downloads/googletest-master/googletest/src/gtest-port.cc: In static member function 'static void testing::internal::ThreadLocalRegistryImpl::StartWatcherThreadFor(DWORD)':
D:/downloads/googletest-master/googletest/src/gtest-port.cc:495:21: error: '::OpenThread' has not been declared
HANDLE thread = ::OpenThread(SYNCHRONIZE | THREAD_QUERY_INFORMATION,
^
make[2]: *** [CMakeFiles/gtest.dir/src/gtest-all.cc.obj] Error 1
make[1]: *** [CMakeFiles/gtest.dir/all] Error 2
make: *** [all] Error 2
请帮忙。我试过了:
cmake -G "MSYS Makefiles" --with-pthreads=no
但是得到了:
CMake Error: The source directory "D:/downloads/googletest-master/googletest/--with-pthreads=no" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
感谢您的回答。
【问题讨论】:
【参考方案1】:cmake -G "MSYS Makefiles" --with-pthreads=no
我不认为--with-pthreads=no
是一个有效的 cmake 选项。 CMake 尝试将其解释为源目录。删除该选项。我认为谷歌测试无论如何都需要pthreads,这就是为什么OpenThread
没有被声明,因为它依赖于pthreads
。
如果您不使用 MSYS shell,请尝试为 cmake 使用“MinGW Makefiles”生成器。
cmake -G "MinGW Makefiles"
然后运行make
。
【讨论】:
以上是关于无法在 Windows 上使用 MinGW 编译 google 测试的主要内容,如果未能解决你的问题,请参考以下文章
无法将 Python 3.5 配置为在 Windows 上使用 Visual C++ 编译器