c++ - Compilando una prueba de refuerzo con Cmake
boost (1)
find_package
incluir el marco de prueba de la unidad en la lista de requisitos en el comando find_package
y luego vincularlo:
find_package(Boost COMPONENTS system filesystem unit_test_framework REQUIRED)
...
target_link_libraries(testTheTester
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
)
Estoy tratando de simplificar un proyecto grande haciendo que cmake lo compile todo para mí, pero tengo problemas para compilar las pruebas de la unidad de impulso. El archivo cmake para mi ejemplo simple se muestra a continuación.
cmake_minimum_required(VERSION 2.8)
find_package(Boost COMPONENTS system filesystem REQUIRED)
add_excecutable(testTheTester boostTester.cpp)
target_link_libraries(testTheTester ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY})
add_test(tester tester)
y el código en boostTester.cpp es:
#define BOOST_TEST_MAIN
#if !defined( WIN32 )
#define BOOST_TEST_DYN_LINK
#endif
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE( la ) {
BOOST_CHECK_EQUAL(1, 1)
}
Ahora este código cpp compilará y ejecutará bien si lo construyo manualmente con:
g++ boostTester.cpp -o output -lboost_unit_test_framework
y el cmake funciona bien pero al usar el archivo de salida make el make falla con una gran cantidad de errores, el primero de los cuales es este:
undefined referance to ''boost::unit_test::unit_test_log_t::set_checkpoint(boost... bla bla
ahora mi pensamiento inicial es que el cmake no está vinculando la biblioteca de impulso correctamente y he intentado muchos comandos y combinaciones sin suerte. ¿Alguien sabe cómo vincular el boost_unit_test en un archivo cmake?