Среда буст-теста не будет работать на моей машине.Я много гуглил, но все ответы, кажется, обводят кругами, но не решают проблему.Я попытался переключиться на #define BOOST_TEST_DYN_LINK, но это просто вызывает еще одну порцию ошибок, и я не вижу никаких современных ответов, предлагающих использовать этот подход.
Следующая строка работает нормально, и я могу запускать тесты безПроблема:
#include <boost/test/include/unit_test.hpp>
Все проблемы начинаются, когда я пытаюсь перейти к:
#define BOOST_TEST_MODULE test
#include <boost/test/unit_test.hpp>
#include <iostream>
BOOST_AUTO_TEST_CASE( something_test)
{
BOOST_TEST(true);
BOOST_TEST(2+2 == 4);
BOOST_CHECK(2+3 == 6);
}
мой файл CMAKE выглядит так:
cmake_minimum_required(VERSION 3.13)
project(BoostTestsWork)
set(CMAKE_CXX_STANDARD 17)
find_package(Boost COMPONENTS system filesystem unit_test_framework REQUIRED)
if(NOT Boost_FOUND)
message(FATAL_ERROR "Could not find boost!")
endif()
message("File System: " ${Boost_FILESYSTEM_LIBRARY})
message("System Library: " ${Boost_SYSTEM_LIBRARY})
message("Unit test framework: " ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
message("Boost Library Dir: " ${Boost_LIBRARY_DIRS})
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIRS})
add_executable(BoostTestsWork library.cpp)
target_link_libraries(BoostTestsWork ${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
${Boost_LIBRARIES})
Вывод, который я получаюэто:
CMAKE:
-- Boost version: 1.67.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- unit_test_framework
File System: /usr/local/boost_1_67_0/stage/lib/libboost_filesystem.dylib
System Library: /usr/local/boost_1_67_0/stage/lib/libboost_system.dylib
Unit test framework: /usr/local/boost_1_67_0/stage/lib/libboost_unit_test_framework.dylib
Boost Library Dir: /usr/local/boost_1_67_0/stage/lib
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/davidespley/CLionProjects/BoostTestsWork/cmake-build-debug
и компиляция:
====================[ Build | all | Debug ]=====================================
/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --build /Users/davidespley/CLionProjects/BoostTestsWork/cmake-build-debug --target all -- -j 6
[ 50%] Building CXX object CMakeFiles/BoostTestsWork.dir/library.cpp.o
[100%] Linking CXX executable BoostTestsWork
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [BoostTestsWork] Error 1
make[1]: *** [CMakeFiles/BoostTestsWork.dir/all] Error 2
make: *** [all] Error 2