尝试链接gtest时Scons链接器错误

时间:2018-01-12 10:39:31

标签: python linux googletest scons

我试图在我的一个项目中使用gtest,并且我使用scons构建了gtest,并且我能够在库链接路径中看到库文件。但是,当我在测试中使用库时,我收到链接器错误。

这是scons文件:

#!/usr/bin/env python

import os

Import('envGlobal')
env = envGlobal.Clone()
envGlobal.Append(CPPPATH=[os.path.abspath('../include')])
files = env.Glob('*.cpp')

print(env['LIBPATH']) #I see libgoogletest.a here
env.Append(LIBS=['tasking','googlemock','googletest','pthread','rt'])

program = env.Program(target = 'OSRAGenerationCode_Refactored_test', source = files)
installTest = env.Install(envGlobal['BINPATH'],program)
envGlobal.Alias('install', installTest)

我收到以下错误:

build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `CmpHelperEQ<int, int>':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/gtest.h:1394: undefined reference to `testing::AssertionSuccess()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `FailureEventTest_testSetGetValue_Test::TestBody()':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:21: undefined reference to `testing::Message::Message()'
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:21: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:21: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const'
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:21: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `testing::internal::scoped_ptr<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/internal/gtest-port.h:1172: undefined reference to `testing::internal::IsTrue(bool)'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `testing::internal::scoped_ptr<std::string>::reset(std::string*)':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/internal/gtest-port.h:1172: undefined reference to `testing::internal::IsTrue(bool)'
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/internal/gtest-port.h:1172: undefined reference to `testing::internal::IsTrue(bool)'
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/internal/gtest-port.h:1172: undefined reference to `testing::internal::IsTrue(bool)'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `testing::internal::scoped_ptr<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/internal/gtest-port.h:1172: undefined reference to `testing::internal::IsTrue(bool)'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `FailureEventTest_testSetGetValue_Test::TestBody()':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:21: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `FailureEventTest':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:12: undefined reference to `testing::Test::Test()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `~FailureEventTest':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:12: undefined reference to `testing::Test::~Test()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `FailureEventTest::~FailureEventTest()':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:12: undefined reference to `testing::Test::~Test()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `~FailureEventTest':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:12: undefined reference to `testing::Test::~Test()'
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:12: undefined reference to `testing::Test::~Test()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `main':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:31: undefined reference to `testing::InitGoogleTest(int*, char**)'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `RUN_ALL_TESTS':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/gtest.h:2235: undefined reference to `testing::UnitTest::GetInstance()'
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/Tasking/contrib/googletest/include/gtest/gtest.h:2235: undefined reference to `testing::UnitTest::Run()'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o: In function `__static_initialization_and_destruction_0':
/home/tari_ra/eclipse-workspace/OSRAGenerationCode_Refactored/AdditionalGeneratedCode/test/src/FailureEvent_test.cpp:19: undefined reference to `testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeLocation, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*)'
build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/FailureEvent_test.o:(.rodata._ZTI16FailureEventTest[_ZTI16FailureEventTest]+0x10): undefined reference to `typeinfo for testing::Test'
collect2: error: ld returned 1 exit status
scons: *** [build/release_local_linux/AdditionalGeneratedCode/test/src/AdditionalGeneratedCode/test/src/OSRAGenerationCode_Refactored_test] Error 1
scons: building terminated because of errors.

0 个答案:

没有答案