[英]eclipse and boost unit_test_framework failing syntax check using c++
[英]Could NOT find Boost (missing: unit_test_framework) (found version "1.71.0")
我需要使用 boost unit_test_framework 並且我正在使用 Cmake 命令來找到它:
cmake_minimum_required(VERSION 3.15)
project(My_String)
set(CMAKE_CXX_STANDARD 17)
set(Boost_USE_STATIC_LIBS OFF)
set(SOURCE_FILES MyStringTest.cpp)
set(BOOST_ROOT "C:\\Program Files\\boost\\boost_1_71_0")
find_package(Boost REQUIRED COMPONENTS unit_test_framework)
include_directories(${Boost_INCLUDE_DIR})
include_directories(../src)
add_executable (Boost_Tests_run ${SOURCE_FILES})
target_link_libraries (Boost_Tests_run Boost::unit_test_framework)
我收到此錯誤:
Could NOT find Boost (missing: unit_test_framework) (found version
"1.71.0")
我能做些什么來修復它?
正如 Real Fresh 建議使用 vcpkg mananger https://github.com/microsoft/vcpkg所以我試了一下,我遇到了幾個問題,但在那之后它起作用了,所以我所做的是:
1.install vcpkg https://github.com/microsoft/vcpkg (按照說明)你可能在設置時遇到錯誤(致命錯誤,無法執行將“文件”重命名為“不同名稱”的提取后操作)你需要手動重命名。
2.在vcpkg的主頁上安裝boost-test lib(您將看到有關如何安裝軟件包的說明)
3.你需要為cmake設置這些變量:
-DVCPKG_TARGET_TRIPLET=x86-windows (x86-windows in my case)
"-DCMAKE_TOOLCHAIN_FILE='root to vcpkg'/scripts/buildsystems/vcpkg.cmake" (in my case root to vcpkg = F:/Files/vcpkg
so the variable will be:
"-DCMAKE_TOOLCHAIN_FILE=F:/Files/vcpkg/scripts/buildsystems/vcpkg.cmake"
4.在您的 test/cmakelists.txt 文件中,您需要添加以下內容:
find_package (Boost REQUIRED COMPONENTS unit_test_framework)
target_link_libraries (your_test_exe Boost::unit_test_framework)
就我而言,我的 test/cmakelists.txt 是這樣的:
cmake_minimum_required(VERSION 3.15)
project(My_String)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "--coverage" )
set(SOURCE_FILES MyStringTest.cpp)
set(Boost_DEBUG ON)
find_package (Boost REQUIRED COMPONENTS unit_test_framework)
include_directories(../Src)
add_executable (Boost_Tests_run ${SOURCE_FILES})
target_link_libraries (Boost_Tests_run Boost::unit_test_framework)
5.在您的 test.cpp 中,您需要包括:
#include <boost/test/included/unit_test.hpp> as it is!
in addition to the classes you are testing.
就我而言,它看起來像這樣:
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MAIN
#define BOOST_TEST_MODULE MyString_Test_Suite
#include
#include "MyString.h"
#include "MyString.cpp"
#include <boost/test/included/unit_test.hpp>
經過一個多星期的谷歌搜索、反復試驗,這終於對我有用了! 如果有人遇到同樣的問題,希望它有所幫助。 感謝您的支持!
我在 Ubuntu 20 機器上使用apt-get install libboost-all-dev
解決了相同的錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.