找不到以下Boost库:boost_system [英] Could not find the following Boost libraries: boost_system

查看:268
本文介绍了找不到以下Boost库:boost_system的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想构建此存储库: https://github.com/reo7sp/tgbot-cpp .

它是用于管理Telegram机器人的API.所需的依赖项是openssl,zlib,boost.卷边是可选的.

It is an API for managing Telegram bots. The needed dependencies are openssl, zlib, boost. Curl is optional.

Boost的编译方式为:

bootstrap.bat
.\b2

和(由于我不知道区别;一个在boost/stage/lib下编译;第二个在boost/lib下编译)

and (since I do not know the difference; one compiles under boost/stage/lib; the second under boost/lib)

bjam install --prefix=D:/Programme/Boost/boost_1_69_0 --with-system --with-date_time --with-random link=static runtime-link=shared threading=multi

我在path下的系统变量中添加了所需的路径.

I added the required paths in system variables under path.

环境变量

路径

The C compiler identification is MSVC 19.16.27026.1
The CXX compiler identification is MSVC 19.16.27026.1
Check for working C compiler: D:/Programme (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
Check for working C compiler: D:/Programme (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: D:/Programme (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
Check for working CXX compiler: D:/Programme (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Looking for pthread.h
Looking for pthread.h - not found
Found Threads: TRUE  
Found ZLIB: D:/Programme (x86)/GnuWin32/lib/zlib.lib (found version "1.2.3") 
Found OpenSSL: optimized;D:/Programme/OpenSSL-Win64/lib/VC/libcrypto64MD.lib;debug;D:/Programme/OpenSSL-Win64/lib/VC/libcrypto64MDd.lib (found version "1.1.0j")  
Could NOT find CURL (missing: CURL_LIBRARY) (found version "7.63.0")
CMake Warning (dev) at CMakeLists.txt:62 (find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  Environment variable Boost_ROOT is set to:

    D:\Programme\Boost\boost_1_69_0

  For compatibility, CMake is ignoring the variable.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at D:/Programme/CMake/share/cmake-3.13/Modules/FindBoost.cmake:2100 (message):
  Unable to find the requested Boost libraries.

  Boost version: 1.69.0

  Boost include path: D:/Programme/Boost/boost_1_69_0/include/boost-1_69

  Could not find the following Boost libraries:

          boost_system

  No Boost libraries were found.  You may need to set BOOST_LIBRARYDIR to the
  directory containing Boost libraries or BOOST_ROOT to the location of
  Boost.
Call Stack (most recent call first):
  CMakeLists.txt:62 (find_package)


CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CURL_LIBRARY
    linked by target "TgBot" in directory G:/Programmieren (C++)/Bibliotheken/tgbot-cpp-master

Configuring incomplete, errors occurred!
See also "G:/Programmieren (C++)/Bibliotheken/tgbot-cpp-master/BUILD/CMakeFiles/CMakeOutput.log".
See also "G:/Programmieren (C++)/Bibliotheken/tgbot-cpp-master/BUILD/CMakeFiles/CMakeError.log".

在我看来,除了Boost以外的所有东西都可以正常工作.我知道有几个用户遇到此问题,例如:

It seems to me that everything except of Boost works. I know that there are several users with this problem like:

Cmake找不到Boost

使用Boost的CMake无法找到静态库

CMake带有Boost库的Windows 10库未找到正确

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "D:/Programme/Boost/boost_1_69_0")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "D:/Programme/Boost/boost_1_69_0/lib")

FIND_PACKAGE(Boost)
IF (Boost_FOUND)
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
    ADD_DEFINITIONS( "-DHAS_BOOST" )
ENDIF()

set(BOOST_LIBRARYDIR D:/Programme/Boost/boost_1_69_0/lib)

没有任何效果.我绝对不知道该怎么办,因为几天来拼命地试图弄清楚该怎么做才成功.请帮帮我.

Nothing worked. I have absolutely no clue what to do, for days desperately trying to figure out what to do without success. Please, help me.

推荐答案

使用相同的命令来构建和安装Boost.

Use the same command to build and install Boost.

bjam install --prefix=D:/Programme/Boost/boost_1_69_0 --with-system --with-date_time --with-random link=static runtime-link=shared threading=multi

在Windows中,Boost在include下创建另一个子目录.应该是这样的.

In windows, Boost creates another sub directory under include. It should be something like this.

D:/Programme/Boost/boost_1_69_0/include/boost-1_69

D:/Programme/Boost/boost_1_69_0/include/boost-1_69中的所有文件移动到D:/Programme/Boost/boost_1_69_0/include/

Move all files in D:/Programme/Boost/boost_1_69_0/include/boost-1_69 to D:/Programme/Boost/boost_1_69_0/include/

(将内容上移至一个目录)

(Move the contents up to one directory)

现在将CMake项目中的BOOST_ROOT设置为D:/Programme/Boost/boost_1_69_0.

Now set the BOOST_ROOT in CMake project to D:/Programme/Boost/boost_1_69_0.

现在应该可以正常工作了.

It should work now.

这篇关于找不到以下Boost库:boost_system的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆