[CMake] Makefile to CMakeLists.txt (GTEST)

Kevyn-Alexandre Paré kapare at rogue-research.com
Tue Dec 7 12:22:45 EST 2010


Thx for replying,

It seem that my simple example and using a add_subdirectory and reusing
CMakelists.txt of the gtest source solved my problem.

Regards,

On Sat, 2010-12-04 at 05:48 -0500, Philip Lowman wrote:
> On Wed, Dec 1, 2010 at 10:59 AM, Kevyn-Alexandre Paré
> <kapare at rogue-research.com> wrote:
>         Philip,
>         
>         Thx for the reply. Neither of these solutions change a thing.
>         
>         I try to play with ADD_CUSTOM_TARGET but same error...
>         
>         ADD_CUSTOM_TARGET(RRThread.o ALL COMMAND ${CMAKE_C_COMPILER}
>         -I
>         ${MICRONTRACKER_COMMON_PATH} -I${GTEST_HEADER_PATH} -lpthread
>         -c
>         ${MICRONTRACKER_COMMON_PATH}RRThread.c
>         ${UNIT_TEST_PATH}common/UT_RRThread.cc)
>         
>         ADD_CUSTOM_TARGET(UT_RRThread ALL COMMAND
>         ${CMAKE_CXX_COMPILER} -I
>         ${MICRONTRACKER_COMMON_PATH} -I${GTEST_HEADER_PATH} -lpthread
>         RRThread.o
>         UT_RRThread.o ${GTEST_LIB_PATH}gtest.a
>         ${GTEST_LIB_PATH}gtest_main.a -o
>         UT_RRThread)
>         
>         Result:
>         UT_RRThread.o: In function `thread_proc(void*)':
>         UT_RRThread.cc:(.text+0x28): undefined reference to
>         `exitThread()'
>         
>         ...
>         
> 
> 
> I'm not sure what exactly has gone wrong here.  You might want to try
> to find the exitThread symbol to see where it lives using "nm" or
> "strings" on the libraries that you have.  If all else fails, perhaps
> check on a GTest forum?  I've never had this problem before but I
> don't recall ever using the gtest static libraries either.
>  
>         I pretty sure that I'm missing little detail. How can I
>         implicitly add
>         dependency to the object during the linking?
> 
> 
> I don't see anything wrong with what you have in terms of the GCC
> invocation.  You'll need to explicitly specify the libraries during
> compile time to resolve those symbols and produce a binary as far as I
> know.
> 
> 
> I'm not sure why you're using add_custom_target() when you could just
> use add_executable() and target_link_libraries(), but I doubt this has
> anything to do with your undefined symbol reference.
> 
> 
> -- 
> Philip Lowman




More information about the CMake mailing list