Make在Boost中找不到.hpp文件

问题描述 投票:0回答:2

我使用的是 Ubuntu 虚拟机,在运行“make”命令时遇到以下错误消息:

Scanning dependencies of target AIToolboxMDP
[  1%] Building CXX object src/CMakeFiles/AIToolboxMDP.dir/Impl/Seeder.cpp.o
[  1%] Building CXX object src/CMakeFiles/AIToolboxMDP.dir/Impl/CassandraParser.cpp.o
In file included from /home/ben/AI/AI-Toolbox-master/include/AIToolbox/Impl/CassandraParser.hpp:4,
                 from /home/ben/AI/AI-Toolbox-master/src/Impl/CassandraParser.cpp:1:
/home/ben/AI/AI-Toolbox-master/include/AIToolbox/Types.hpp:7:10: fatal error: boost/multi_array.hpp: No such file or directory
    7 | #include <boost/multi_array.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [src/CMakeFiles/AIToolboxMDP.dir/build.make:76: src/CMakeFiles/AIToolboxMDP.dir/Impl/CassandraParser.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1140: src/CMakeFiles/AIToolboxMDP.dir/all] Error 2
make: *** [Makefile:95: all] Error 2

我在 make 之前运行了 cmake,cmake 能够找到 Boost;我还可以看到 multi_array.hpp 文件位于文件夹 /home/ben/AI/boost_1_77_0/boost 中,所以我不确定为什么 make 找不到该文件。我尝试将

target_link_libraries(program ${Boost_LIBRARIES})
行的变体添加到 CMakeLists.txt 文件中,并在 make 调用中使用 -L/-l 选项的变体,但这两种方法都不起作用(尽管我不确定与 target_link_libraries 一起使用哪个程序名称所以我尝试了很多猜测,但也许我没有使用正确的猜测;如果有帮助的话,我正在尝试构建 AI-Toolbox)。

我还必须在 make 之前运行的 cmake 命令中添加几个选项,以消除任何错误;这是我输入的内容,以防万一我会做任何事情或者我需要在其中添加其他内容:

cmake .. -DBOOST_ROOT=/home/ben/AI/boost_1_77_0 -DLPSOLVE_INCLUDE_PATH=/home/ben/AI/lpsolve -DVCPKG_TARGET_TRIPLET=x64-linux -DCMAKE_TOOLCHAIN_FILE=/home/ben/AI/vcpkg/scripts/buildsystems/vcpkg.cmake

我的 CMakeLists.txt 文件包含以下几行(其中包括,但这些似乎是最相关的),以防万一也有帮助:

find_package(Boost ${BOOST_VERSION_REQUIRED} REQUIRED)
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})

有人对我如何克服 make 错误有任何想法吗?

c++ ubuntu boost makefile
2个回答
0
投票

我最终通过删除 Boost 文件夹并使用命令

sudo apt-get install libboost-all-dev
重新安装它来解决这个问题;我只是重新运行 cmake 并取出除了 lpsolve 之外的所有我一直在使用的选项,然后当我随后运行 make 时,我没有遇到任何问题。


0
投票

标头

boost/multi_array.hpp
和其他基本标头(如
boost/format.hpp
)包含在 Debian 软件包
libboost-dev
中。

© www.soinside.com 2019 - 2024. All rights reserved.