8000 Can't compile with MinGW (Win8 x64) · Issue #606 · google/googletest · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Can't compile with MinGW (Win8 x64) #606
Closed
@WesleyCeraso

Description

@WesleyCeraso

Hi, I'm having trouble building GTest with MinGW, I used bisect to find the commit that broke the build:

a634042 is the first bad commit
commit a634042
Author: kosak kosak@google.com
Date: Mon Mar 24 21:58:25 2014 +0000

Implement threading support for gtest on Windows.
Also, stop using localtime(). Instead, use localtime_r() on most systems, localtime_s() on Windows.

The build step output:

$ cmake --build .
[ 25%] Building CXX object CMakeFiles/gtest.dir/src/gtest-all.cc.obj
In file included from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-internal.h:40:0,
from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/gtest.h:58,
from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:39:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1704:3: error: 'AutoHandle' does not name a type
AutoHandle thread_;
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:43:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:626:3: error: 'AutoHandle' does not name a type
AutoHandle write_handle_;
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:628:3: error: 'AutoHandle' does not name a type
AutoHandle child_handle_;
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:633:3: error: 'AutoHandle' does not name a type
AutoHandle event_handle_;
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc: In member function 'virtual int testing::internal::WindowsDeathTest::Wait()':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:645:36: error: 'child_handle_' was not declared in this scope
const HANDLE wait_handles[2] = { child_handle_.Get(), event_handle_.Get() };
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:645:57: error: 'event_handle_' was not declared in this scope
const HANDLE wait_handles[2] = { child_handle_.Get(), event_handle_.Get() };
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:659:3: error: 'write_handle_' was not declared in this scope
write_handle_.Reset();
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc: In member function 'virtual testing::internal::DeathTest::TestRole testing::internal::WindowsDeathTest::AssumeRole()':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:709:3: error: 'write_handle_' was not declared in this scope
write_handle_.Reset(write_handle);
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:710:3: error: 'event_handle_' was not declared in this scope
event_handle_.Reset(::CreateEvent(
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:766:3: error: 'child_handle_' was not declared in this scope
child_handle_.Reset(process_info.hProcess);
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc: In function 'int testing::internal::GetStatusFileDescriptor(unsigned int, size_t, size_t)':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:1232:3: error: 'AutoHandle' was not declared in this scope
AutoHandle parent_process_handle(::OpenProcess(PROCESS_DUP_HANDLE,
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:1235:7: error: 'parent_process_handle' was not declared in this scope
if (parent_process_handle.Get() == INVALID_HANDLE_VALUE) {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:1251:26: error: 'parent_process_handle' was not declared in this scope
if (!::DuplicateHandle(parent_process_handle.Get(), write_handle,
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:1266:26: error: 'parent_process_handle' was not declared in this scope
if (!::DuplicateHandle(parent_process_handle.Get(), event_handle,
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:45:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: In function 'void testing::internal::SleepMilliseconds(int)':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:139:6: error: redefinition of 'void testing::internal::SleepMilliseconds(int)'
void SleepMilliseconds(int n) {
^
In file included from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-internal.h:40:0,
from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/gtest.h:58,
from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:39:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1377:13: note: 'void testing::internal::SleepMilliseconds(int)' previously defined here
inline void SleepMilliseconds(int n) {
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:45:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: At global scope:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:143:1: error: 'AutoHandle' does not name a type
AutoHandle::AutoHandle()
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:146:1: error: 'AutoHandle' does not name a type
AutoHandle::AutoHandle(Handle handle)
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:149:1: error: 'AutoHandle' does not name a type
AutoHandle::~AutoHandle() {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:153:1: error: 'AutoHandle' does not name a type
AutoHandle::Handle AutoHandle::Get() const {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:157:6: error: 'AutoHandle' has not been declared
void AutoHandle::Reset() {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: In function 'void testing::internal::Reset()':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:158:29: error: too many arguments to function 'void testing::internal::Reset()'
Reset(INVALID_HANDLE_VALUE);
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:157:6: note: declared here
void AutoHandle::Reset() {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: At global scope:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:161:6: error: 'AutoHandle' has not been declared
void AutoHandle::Reset(HANDLE handle) {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: In function 'void testing::internal::Reset(HANDLE)':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:163:7: error: 'handle_' was not declared in this scope
if (handle_ != handle) {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:164:21: error: 'IsCloseable' was not declared in this scope
if (IsCloseable()) {
^
In file included from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-internal.h:40:0,
from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/gtest.h:58,
from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:39:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:169:31: error: 'IsCloseable' was not declared in this scope
GTEST_CHECK_(!IsCloseable())
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1250:37: note: in definition of macro 'GTEST_CHECK_'
if (::testing::internal::IsTrue(condition))
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:45:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: At global scope:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:175:6: error: 'AutoHandle' has not been declared
bool AutoHandle::IsCloseable() const {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:175:32: error: non-member function 'bool testing::internal::IsCloseable()' cannot have cv-qualifier
bool AutoHandle::IsCloseable() const {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: In function 'bool testing::internal::IsCloseable()':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:178:10: error: 'handle_' was not declared in this scope
return handle_ != NULL && handle_ != INVALID_HANDLE_VALUE;
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: At global scope:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:181:1: error: redefinition of 'testing::internal::Notification::Notification()'
Notification::Notification()
^
In file included from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-internal.h:40:0,
from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/gtest.h:58,
from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:39:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1396:3: note: 'testing::internal::Notification::Notification()' previously defined here
Notification() : notified_(false) {
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:45:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:189:6: error: redefinition of 'void testing::internal::Notification::Notify()'
void Notification::Notify() {
^
In file included from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-internal.h:40:0,
from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/gtest.h:58,
from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:39:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1405:8: note: 'void testing::internal::Notification::Notify()' previously defined here
void Notify() {
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:45:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:193:6: error: redefinition of 'void testing::internal::Notification::WaitForNotification()'
void Notification::WaitForNotification() {
^
In file included from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-internal.h:40:0,
from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/gtest.h:58,
from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:39:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1413:8: note: 'void testing::internal::Notification::WaitForNotification()' previously defined here
void WaitForNotification() {
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h: In constructor 'testing::internal::Mutex::Mutex()':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1616:13: warning: 'testing::internal::Mutex::type_' will be initialized after [-Wreorder]
MutexType type_;
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1612:16: warning: 'unsigned int testing::internal::Mutex::owner_thread_id_' [-Wreorder]
unsigned int owner_thread_id_;
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:45:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:198:1: warning: when initialized here [-Wreorder]
Mutex::Mutex()
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: In constructor 'testing::internal::ThreadWithParamBase::ThreadWithParamBase(testing::internal::ThreadWithParamBase::Runnable, testing::internal::Notification)':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:337:9: error: class 'testing::internal::ThreadWithParamBase' does not have any field named 'thread_'
: thread_(ThreadWithParamSupport::CreateThread(runnable,
^
In file included from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-internal.h:40:0,
from C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/gtest.h:58,
from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:39:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: In member function 'void testing::internal::ThreadWithParamBase::Join()':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:346:38: error: 'thread_' was not declared in this scope
GTEST_CHECK_(::WaitForSingleObject(thread_.Get(), INFINITE) == WAIT_OBJECT_0)
^
C:/Users/wprudencio/gtest-1.7.0-hunter-11/include/gtest/internal/gtest-port.h:1250:37: note: in definition of macro 'GTEST_CHECK_'
if (::testing::internal::IsTrue(condition))
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:45:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc: In function 'bool testing::internal::IsCloseable()':
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-port.cc:179:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
In file included from C:\Users\wprudencio\gtest-1.7.0-hunter-11\src\gtest-all.cc:43:0:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc: At global scope:
C:/Users/wprudencio/gtest-1.7.0-hunter-11/src/gtest-death-test.cc:123:13: warning: 'testing::internal::g_in_fast_death_test_child' defined but not used [-Wunused-variable]
static bool g_in_fast_death_test_child = false;
^
CMakeFiles\gtest.dir\build.make:62: recipe for target 'CMakeFiles/gtest.dir/src/gtest-all.cc.obj' failed
mingw32-make.exe[2]: *** [CMakeFiles/gtest.dir/src/gtest-all.cc.obj] Error 1
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/gtest.dir/all' failed
mingw32-make.exe[1]: *** [CMakeFiles/gtest.dir/all] Error 2
makefile:126: recipe for target 'all' failed
mingw32-make.exe: *** [all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0