簡體   English   中英

找不到 Boost(缺少:unit_test_framework)(找到版本“1.71.0”)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM