Я изучаю тест google. Я скачал GTEST, побежал команды ./configure
и make
и закончилсяgoogle testing missing DSO
$ sudo cp -a include/gtest /usr/include
$ sudo cp -a lib/.libs/* /usr/lib/
я получил все это от here. Я попытался запустить этот код
#include <gtest/gtest.h>
TEST(MathTest, TwoPlusTwoEqualsFour) {
EXPECT_EQ(2 + 2, 4);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
как этот
$ export GTEST_HOME=~/usr/gtest
$ export LD_LIBRARY_PATH=$GTEST_HOME/lib:$LD_LIBRARY_PATH
$ g++ -I $GTEST_HOME/include -L $GTEST_HOME/lib -lgtest -lgtest_main -lpthread test.cpp
, но я получил ошибку
/usr/bin/ld: /tmp/ccVTj3Rk.o: undefined reference to symbol '_ZN7testing8internal9EqFailureEPKcS2_RKSsS4_b'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libgtest.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
я делаю что-то неправильно, или это ошибка?
AFAIK, вы не должны реализовывать 'main()', если вы ссылаетесь на 'gtest_main' – tgmath
, поэтому я должен удалить' main() '? Что вы делаете – TheGuyWithStreetCred
Я протестировал его без 'main()' и скомпилировал его так, как вы. Важно добавить libs после 'test.cpp'. – tgmath