<filesystem> 在 clang 6 和 10 上 #include 错误
error on #include <filesystem> on clang 6 and 10
我得到这个:
No such file or directory
#include <filesystem>
上
#if __cplusplus >= 201703L
#include <filesystem>
#endif
尝试使用 clang 6.0 进行编译时。不幸的是,我无法移动到experimental/filesystem
,因为它不是我的库,而是OpenVPN3。我尝试使用clang 10,但仍然收到错误。
如果我无法修改OpenVPN3,我有什么选择?
我的CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(ovpncli)
set (PROJECT_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/..)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_MODULE_PATH "${PROJECT_ROOT}/openvpn3/cmake;${CMAKE_MODULE_PATH}")
include(findcoredeps)
set(LIBTINS_BUILD_SHARED OFF CACHE BOOL "enable X functionality" FORCE)
set(LIBTINS_ENABLE_PCAP OFF CACHE BOOL "enable X functionality" FORCE)
set(PCAP_INCLUDE_DIR "")
set(PCAP_LIBRARY "")
add_subdirectory(${PROJECT_ROOT}/libtins _libtins)
add_subdirectory(${PROJECT_ROOT}/literal_ipaddr _literal_ipaddr)
add_subdirectory(${PROJECT_ROOT}/smoltcp_cpp_interface smoltcp_cpp_interface)
set(KOVPN_SOURCE "${CORE_DIR}/../kovpn" CACHE PATH "ovpn-dco kernel module source tree")
include_directories(${PROJECT_ROOT}/openvpn3/)
include_directories(${PROJECT_ROOT}/libtins/include)
include_directories(${PROJECT_ROOT}/asio/asio/include)
include_directories(${PROJECT_ROOT}/literal_ipaddr)
add_executable(libopenvpn_example OpenVPNClient.cpp)
add_dependencies(libopenvpn_example tins literal_ipaddr)
set_property(TARGET libopenvpn_example PROPERTY CXX_STANDARD 17)
target_link_libraries(libopenvpn_example tins literal_ipaddr)
add_core_dependencies(libopenvpn_example)
详细:
cd /workspaces/libopenvpnclient/build/src && /usr/local/clang/bin/clang++ -DASIO_STANDALONE -DHAVE_LZ4 -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMBEDTLS_DEPRECATED_REMOVED -DUSE_ASIO -DUSE_OPENSSL -I/workspaces/libopenvpnclient/src/../openvpn3 -I/workspaces/libopenvpnclient/src/../libtins/include -I/workspaces/libopenvpnclient/src/../asio/asio/include -I/workspaces/libopenvpnclient/src/../literal_ipaddr -I/workspaces/libopenvpnclient/openvpn3/cmake/.. -I/workspaces/libopenvpnclient/openvpn3/cmake/../../deps/asio/asio/include -Wall -Wsign-compare -Wno-missing-field-initializers -std=c++1z -o CMakeFiles/libopenvpn_example.dir/OpenVPNClient.cpp.o -c /workspaces/libopenvpnclient/src/OpenVPNClient.cpp
如果使用libstdc++
验证您至少具有版本 9 或添加-lstdc++fs
...
运行时库 (libstdc++(
- 改进了对 C++17 的支持,包括:
- C++17 实现不再是实验性的。
- 并行算法和
<execution>
(需要线程构建块 2018 或 较新(。 <memory_resource>
.- 现在使用
<filesystem>
中的类型和函数不需要与 -lstdc++fs 链接。
参考: https://gcc.gnu.org/gcc-9/changes.html#libstdcxx
相关文章:
- C++包含来自 #include "DevEngine/Core.h" 的错误
- <filesystem> 在 clang 6 和 10 上 #include 错误
- macOS 致命错误:sys/_types/_int8_t.h:没有此类文件或目录 #include < sys/_types/_int8_t.h>
- /usr/include/c++/7/cstdlib:75:15:致命错误:stdlib.h:没有这样的文件或目录 #i
- 解析问题 - 预期的非限定 ID - #include <array> 编译错误
- IntelliSense在VS Code中使用Arduino时会引发 #include 错误
- is_permutation方法从 #include<algorithm> 显示错误的输出
- 错误:#include 在开发C++中嵌套得太深
- 【MacOSX 10.15.1】使用 odb 生成数据库,致命错误:wchar.h:没有这样的文件或目录 #include < wchar.h>
- C++ #include和运算符<<过载错误
- pip install uwsgi 失败,出现 /usr/local/include/string/string.h:7:10:致命错误:找不到'sstream'文件?
- #include "date.h" 创建错误 E1696 无法打开源文件"date.h",也无法打开包含文件:没有这样的文件或目录
- 代码::块 (MinGW) #include <priority_queue>上的编译错误
- VS Code认为任何文件的第一行都是#include错误
- 使用许多嵌套的#include语句对编译器错误进行故障排除
- 致命错误:google/protobuf/port_def.inc:没有这样的文件或目录 #include < google/protobuf/port_def.inc>
- 在 Arduino Uno 与以太网防护板中使用 Firebase Arduino 库时出现错误"#include <string> while compiling"
- 为什么 #include <string> 在这里防止堆栈溢出错误?
- 是 std::include 中的错误还是我做错了什么
- Android NDK应用开发过程中出现奇怪的include错误