首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在clang 6和10上的#include <filesystem>上出错

在clang 6和10上的#include <filesystem>上出错
EN

Stack Overflow用户
提问于 2020-07-05 09:11:03
回答 1查看 130关注 0票数 0

我得到了这个:

代码语言:javascript
复制
No such file or directory
 #include <filesystem>

在……上面

代码语言:javascript
复制
#if __cplusplus >= 201703L
#include <filesystem>
#endif

当尝试使用clang 6.0编译时。不幸的是,我不能迁移到experimental/filesystem,因为它不是我的库,它是OpenVPN3。我尝试使用clang 10,但仍然收到错误。

如果我不能修改OpenVPN3,我有什么选择?

我的CMakeLists.txt:

代码语言:javascript
复制
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)

详细:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-07-06 02:15:36

如果使用libstdc++,请验证您是否至少安装了版本9或添加-lstdc++fs...

运行时库(libstdc++)

  • 改进了对C++17的支持,包括:
    • C++17实现不再是experimental.
    • Parallel now.

和newer).

  • <memory_resource>.

  • Using (需要线程构建块2018或<filesystem> )<filesystem>中的类型和函数不需要与-lstdc++fs algorithms链接

参考:https://gcc.gnu.org/gcc-9/changes.html#libstdcxx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62735906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档