0

Before I begin, I want to say that I am aware of this question, but no answer was satisfactory. Maybe because this question was asked in 2012 and things might have changed until 2021.

I want to use Google Test with Code::Blocks to write some tests. In order to do this, I downloaded the latest version from Github and built it with the last version of CMake.

In the next step, I opened the project file with it and I tried to build it. As a result, I got the following error messages:

||=== Build: all in googletest-distribution (compiler: GNU GCC Compiler) ===|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h||In function 'int testing::internal::posix::StrCaseCmp(const char*, const char*)':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|1979|error: '_stricmp' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|1979|note: suggested alternative: 'strncmp'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h||In function 'char* testing::internal::posix::StrDup(const char*)':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|1981|error: '_strdup' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|1981|note: suggested alternative: 'StrDup'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h||In function 'int testing::internal::posix::FileNo(FILE*)':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|1989|error: '_fileno' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|1989|note: suggested alternative: 'file'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h||In function 'FILE* testing::internal::posix::FDOpen(int, const char*)':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|2035|error: 'fdopen' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\include\gtest\internal\gtest-port.h|2035|note: suggested alternative: 'fopen'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|1940|error: '_wcsicmp' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|1940|note: suggested alternative: 'wcsncmp'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc||In member function 'int testing::UnitTest::Run()':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4900|error: '_OUT_TO_STDERR' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4900|error: '_set_error_mode' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4900|note: suggested alternative: 'SetErrorMode'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4920|error: '_CRT_ASSERT' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4920|note: suggested alternative: 'C_ASSERT'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4921|error: '_CRTDBG_MODE_FILE' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4921|error: '_CRTDBG_MODE_DEBUG' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4920|error: '_CrtSetReportMode' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4920|note: suggested alternative: 'SetErrorMode'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4922|error: '_CRTDBG_FILE_STDERR' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest.cc|4922|error: '_CrtSetReportFile' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc||In function 'void testing::internal::DeathTestAbort(const string&)':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|296|error: '_exit' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|296|note: suggested alternative: '_Exit'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc||In member function 'virtual void testing::internal::DeathTestImpl::Abort(testing::internal::DeathTest::AbortReason)':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|527|error: '_exit' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|527|note: suggested alternative: '_Exit'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc||In member function 'virtual testing::internal::DeathTest::TestRole testing::internal::WindowsDeathTest::AssumeRole()':|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|771|error: '_MAX_PATH' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|771|note: suggested alternative: 'MAX_PATH'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|773|error: 'executable_path' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|308|note: in definition of macro 'GTEST_DEATH_TEST_CHECK_'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|797|error: 'executable_path' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-death-test.cc|308|note: in definition of macro 'GTEST_DEATH_TEST_CHECK_'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-filepath.cc|49|error: '_MAX_PATH' was not declared in this scope|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-filepath.cc|101|note: in expansion of macro 'GTEST_PATH_MAX_'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-filepath.cc|49|note: suggested alternative: 'MAX_PATH'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-filepath.cc|101|note: in expansion of macro 'GTEST_PATH_MAX_'|
C:\Users\alexz\OneDrive\Desktop\googletest-release-1.10.0\googletest\src\gtest-filepath.cc|102|error: 'cwd' was not declared in this scope|
googletest\CMakeFiles\gtest.dir\build.make|75|recipe for target 'googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.obj' failed|
CMakeFiles\Makefile2|170|recipe for target 'googletest/CMakeFiles/gtest.dir/all' failed|
C:\Users\alexz\OneDrive\Programe\C\Testare program C\Google Test\Makefile|144|recipe for target 'all' failed|
||=== Build failed: 23 error(s), 0 warning(s) (0 minute(s), 5 second(s)) ===|
||=== Run: all in googletest-distribution (compiler: GNU GCC Compiler) ===|

As I see, the errors appear in only two files. I tried all the answers in the aforementioned question, without success at all.

How can I fix those errors, so I can finally begin to write my test cases and go on with my work?

Bogdan Doicin
  • 2,342
  • 5
  • 25
  • 34
  • Some of these missing declarations are Windows-specific. Perhaps you generated a Windows build configuration with CMake but Code::Blocks uses Cygwin or MinGW? – rveerd Apr 12 '21 at 15:01
  • @rveerd Yes, that is correct. This is what I did. Code::Blocks uses MinGW – Bogdan Doicin Apr 13 '21 at 04:48
  • I can't help you further but others have [problems met Google Test and MinGW](https://github.com/google/googletest/issues/2418), too. – rveerd Apr 13 '21 at 07:33

0 Answers0