google / googletest

GoogleTest - Google Testing and Mocking Framework
https://google.github.io/googletest/
BSD 3-Clause "New" or "Revised" License
34.75k stars 10.14k forks source link

Compilation problem with C++ Builder 10 Seattle #838

Closed SomeDudesRepo closed 7 years ago

SomeDudesRepo commented 8 years ago

Hi,

I have unzipped the master download from 28-07-2016 and when trying to compile on Windows 7 Enterprise Service Pack 1, 64 bit, with C++ Builder 10 Seattle with the 32-bit, Release target there are all these errors:

Checking project dependencies... Compiling gtest.cbproj (Release, Win32) bcc32 command line for "gtest_all.cc" c:\program files (x86)\embarcadero\studio\17.0\bin\bcc32.exe -DNDEBUG -DUSEPACKAGES -nRelease -I..\include\gtest;..\include\gtest\internal; "c:\program files (x86)\embarcadero\studio\17.0\include";"c:\program files (x86)\embarcadero\studio\17.0\include\vcl";..\src;..\include;..; "c:\program files (x86)\embarcadero\studio\17.0\include";"c:\program files (x86)\embarcadero\studio\17.0\include\dinkumware";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\crtl";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\sdk";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\rtl";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\vcl";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\fmx";"C:\Program Files (x86)\FastReports\LibD23" -P -c -tR -tW -C8 -oRelease\gtest_all.obj -w-par -O2 -v- -vi -H=Release\gtest.pch -H gtest_all.cc [bcc32 Warning] W8123 Path 'c:\program files (x86)\embarcadero\studio\17.0\include\vcl' not found - path ignored in option '-I' [bcc32 Warning] W8123 Path 'c:\program files (x86)\embarcadero\studio\17.0\include\vcl' not found - path ignored in option '-I' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'TestPartResult' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'Message' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'TestPartResult' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'TestPartResult' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] utility(15): E2247 'testing::internal::scoped_ptr::scoped_ptr(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(17): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(18): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(15): E2247 'testing::internal::scoped_ptr::scoped_ptr(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(17): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(18): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] gtest-internal.h(885): E2396 Template argument must be a constant expression [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'Message' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'Message' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest.cc(2109): E2285 Could not find a match for 'internal::Strings::vector(const char * const ,const char * const )' [bcc32 Error] gtest.cc(2109): E2285 Could not find a match for 'internal::Strings::vector(const char * const ,const char * const )' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::_Smanip' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest-message.h(135): E2094 'operator<<' not implemented in type 'std::stringstream' for arguments of type 'std::string' [bcc32 Error] gtest.cc(3566): E2268 Call to undefined function 'localtime_r' [bcc32 Error] gtest.cc(3566): E2228 Too many error or warning messages Failed

I tried including , but didn't help. I added "using namespace std;" and that made the string errors (and possible others) go away, and that's down to 22 errors. Not sure what to try next =S.

Compiling gtest.cbproj (Release, Win32) bcc32 command line for "gtest_all.cc" c:\program files (x86)\embarcadero\studio\17.0\bin\bcc32.exe -DNDEBUG -DUSEPACKAGES -nRelease -I..\include\gtest;..\include\gtest\internal; "c:\program files (x86)\embarcadero\studio\17.0\include";"c:\program files (x86)\embarcadero\studio\17.0\include\vcl";..\src;..\include;..; "c:\program files (x86)\embarcadero\studio\17.0\include";"c:\program files (x86)\embarcadero\studio\17.0\include\dinkumware";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\crtl";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\sdk";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\rtl";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\vcl";"c:\program files (x86)\embarcadero\studio\17.0\include\windows\fmx";"C:\Program Files (x86)\FastReports\LibD23" -P -c -tR -tW -C8 -oRelease\gtest_all.obj -w-par -O2 -v- -vi -H=Release\gtest.pch -H gtest_all.cc [bcc32 Warning] W8123 Path 'c:\program files (x86)\embarcadero\studio\17.0\include\vcl' not found - path ignored in option '-I' [bcc32 Warning] W8123 Path 'c:\program files (x86)\embarcadero\studio\17.0\include\vcl' not found - path ignored in option '-I' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'TestPartResult' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'TestPartResult' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'Message' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'Message' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'TestPartResult' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'TestPartResult' [bcc32 Error] utility(15): E2247 'testing::internal::scoped_ptr::scoped_ptr(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(17): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(18): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(15): E2247 'testing::internal::scoped_ptr::scoped_ptr(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(17): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] utility(18): E2247 'operator testing::internal::scoped_ptr::=(const testing::internal::scoped_ptr &)' is not accessible [bcc32 Error] gtest-internal.h(885): E2396 Template argument must be a constant expression [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'Message' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'Message' [bcc32 Error] gtest.cc(2109): E2285 Could not find a match for 'internal::Strings::vector(const char * const ,const char * const )' [bcc32 Error] gtest.cc(2109): E2285 Could not find a match for 'internal::Strings::vector(const char * const ,const char * const )' [bcc32 Error] gtest.cc(3566): E2268 Call to undefined function 'localtime_r' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'Message' [bcc32 Error] gtest-message.h(136): E2094 'operator<<' not implemented in type 'stringstream' for arguments of type 'Message' [bcc32 Error] gtest-test-part.cc(53): E2354 Two operands must evaluate to the same type [bcc32 Error] gtest-test-part.cc(53): E2285 Could not find a match for 'string::basic_string(string&)' [bcc32 Warning] gtest-test-part.cc(55): W8004 'stack_trace' is assigned a value that is never used [bcc32 Warning] gtest-test-part.cc(102): W8058 Cannot create pre-compiled header: code in header Failed

Many thanks for any help.

KindDragon commented 8 years ago

Try this http://stackoverflow.com/a/2462019/61505

SomeDudesRepo commented 8 years ago

Thanks, KindDragon. I did try that. Well, the string and windows.h part. Still 22 errors.

KindDragon commented 8 years ago

Nobody touch C++ Builder project 7 years https://github.com/google/googletest/commit/c78ae6196dc9c24380b5cf86f8fd75a4d3edc704 Sorry, but I do not think that someone else is able to help you here.

claudiouzelac commented 8 years ago

Based upon that compiler message, I'd bet you have to implement some additional code in order to make it work. I'd probably start here and work from there:

https://github.com/google/googletest/blob/master/googletest/include/gtest/internal/gtest-port.h

nevot commented 7 years ago

Did someone succeed to compile gtest in rad studio ?

JagdishGundeti commented 7 years ago

Hi All, Any body got success for compilation on C++ Builder 10 Seattle?

tanzislam commented 7 years ago

I've had success, but only with the Clang-enhanced compiler. Trying to use the classic compiler is just a waste of time, it probably doesn't implement even C++98 properly. Check my patch #1217.

gennadiycivil commented 7 years ago

Thank you very much for your contribution. There are many compilers and build systems on the market , it is not possible (or useful) to attempt to support all of them.