gtest linking error
Consider adding following dummy function:
diff --git a/BaseLib/quicksort.h b/BaseLib/quicksort.h
index d0a9a69..b03dcd2 100644
--- a/BaseLib/quicksort.h
+++ b/BaseLib/quicksort.h
@@ -19,6 +19,8 @@
namespace BaseLib {
+
+void testfunction(void) { }
+
template <class T>
unsigned partition_(T* array, unsigned beg, unsigned end)
{
and creating a new file Tests/BaseLib/TestQuicksort2.cpp containing only
#include "quicksort.h"
Building the code yields a linker error:
> VERBOSE=1 make
...
Linking CXX executable ../bin/testrunner
cd /home/naumov/ogs/ogs/build/Tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testrunner.dir/link.txt --verbose=1
/usr/bin/c++ -std=c++11 -Wno-deprecated -Wall -Wextra -fno-nonansi-builtins -fopenmp -g CMakeFiles/testrunner.dir/testrunner.cpp.o CMakeFiles/testrunner.dir/BaseLib/TestSystemTools.cpp.o CMakeFiles/testrunner.dir/BaseLib/TestQuicksort.cpp.o CMakeFiles/testrunner.dir/BaseLib/TestQuicksort2.cpp.o CMakeFiles/testrunner.dir/BaseLib/TestSwap.cpp.o CMakeFiles/testrunner.dir/BaseLib/TestFilePathStringManipulation.cpp.o CMakeFiles/testrunner.dir/GeoLib/TestAABB.cpp.o -o ../bin/testrunner -rdynamic ../lib/libGTest.a ../lib/libBaseLib.a ../lib/libGeoLib.a ../lib/libBaseLib.a ../lib/libMathLib.a
CMakeFiles/testrunner.dir/BaseLib/TestQuicksort2.cpp.o: In function `BaseLib::testfunction()':
/home/naumov/ogs/ogs/BaseLib/quicksort.h:22: multiple definition of `BaseLib::testfunction()'
CMakeFiles/testrunner.dir/BaseLib/TestQuicksort.cpp.o:/home/naumov/ogs/ogs/BaseLib/quicksort.h:22: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [bin/testrunner] Error 1
...
This error occured in more complex environment where instead of testfunction a specialized version of template function, which cannot be put into a .cpp file, was used.
Try #include "quickcheck/quickcheck.hh"
in the TestQuicksort2.cpp.
Do I miss some configuration parameters for gtest?