gpt4 book ai didi

ubuntu - Clang 7 在 Ubuntu 18.04 上找不到 header

转载 作者:行者123 更新时间:2023-12-04 18:44:32 25 4
gpt4 key购买 nike

我写了CMakeLists.txt如下文件,用于使用 C++17 <filesystem> .这些是他们的一部分。

cmake_minimum_required(VERSION 3.14)

...

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")

include(functions)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

enable_cxx_compiler_flag_if_supported("-Wall")
enable_cxx_compiler_flag_if_supported("-pedantic")

...

set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_STATIC_RUNTIME ON)
find_package(Boost 1.65.1 COMPONENTS filesystem regex system thread)
if(Boost_FOUND)
add_executable(daemon
...)
target_compile_features(daemon PRIVATE cxx_std_17)
target_include_directories(daemon PRIVATE ...)
target_link_libraries(daemon ${Boost_LIBRARIES})

# OS specific instructions.
if(APPLE)
find_library(CoreFoundation CoreFoundation)
find_library(IOKit IOKit)
target_link_libraries(daemon ${CoreFoundation} ${IOKit})
elseif(WIN32)
# Windows developer environment specific instructions.
if(MINGW)
elseif(MSYS)
elseif(CYGWIN)
endif()
elseif(UNIX)
// The problem is here. Why Clang cannot find <filesystem>???
target_link_libraries(daemon c++fs dl)
else()
endif()
endif()

我试过 target_link_libraries(daemon stdc++fs dl)set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")但没有奏效。

错误代码是

cmake --build .
[1/2] Building CXX object CMakeFiles/daemon.dir/src/thread/serial_manager.cpp.o
FAILED: CMakeFiles/daemon.dir/src/thread/serial_manager.cpp.o
/usr/bin/clang++ -I/home/koriel/.conan/data/boost/1.65.1/conan/stable/package/f410c60ac3ae66f96115aab74b1c5fbc1a6a4a45/include -I/home/koriel/.conan/data/bzip2/1.0.6/conan/stable/package/abc45b7dce3f5194dea2377c33229fa4f20706b4/include -I/home/koriel/.conan/data/zlib/1.2.11/conan/stable/package/abc45b7dce3f5194dea2377c33229fa4f20706b4/include -I../include/json -I../include/queue -I../src/base64 -I../src/message -I../src/serial -I../src/thread -Wall -pedantic -DBOOST_USE_STATIC_LIBS -std=gnu++17 -MD -MT CMakeFiles/daemon.dir/src/thread/serial_manager.cpp.o -MF CMakeFiles/daemon.dir/src/thread/serial_manager.cpp.o.d -o CMakeFiles/daemon.dir/src/thread/serial_manager.cpp.o -c ../src/thread/serial_manager.cpp
../src/thread/serial_manager.cpp:43:10: fatal error: 'filesystem' file not found
#include <filesystem>
^~~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.

最佳答案

尽管 <filesystem>包含在 official libc++ 7 中,许多发行版不包括它。

我刚刚查看了 Xcode 10.2(它也发布了 libc++ 7)并且遇到了同样的情况:filesystem安装中缺少 header 。

你可以看看你的 libc++ 安装,它应该在 /usr 的某个地方。对于 Ubuntu 系统(如果您不知道确切的位置,只需运行 find /usr -name cstdint ,这会将您指向该位置)。如果没有找到 filesystem该文件夹中的标题,您可以使用 boost::filesystem或尽快安装 clang 8。

关于ubuntu - Clang 7 在 Ubuntu 18.04 上找不到 <filesystem> header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com