clion C++读取中文路径问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clion C++读取中文路径问题相关的知识,希望对你有一定的参考价值。

参考技术A 代码路径开一个终端,source一下,然后到clion的安装路径下在,Downloads/clion/bin下就可以正常使用。
CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE。
CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE,它是以IntelliJ为基础设计的,同时还包含了许多智能功能来提高开发人员的生产力。

如何在 CLion 中包含 ASIO C++?

【中文标题】如何在 CLion 中包含 ASIO C++?【英文标题】:How include ASIO C++ in CLion? 【发布时间】:2019-10-13 04:56:20 【问题描述】:

我使用了不同的选项,但都不起作用:

1) CMake:

cmake_minimum_required(VERSION 3.14)
project(Client)

set(CMAKE_CXX_STANDARD 17)

include(FetchContent)

FetchContent_Declare(
        asio
        GIT_REPOSITORY https://github.com/chriskohlhoff/asio
        GIT_TAG asio-1-14-0
        UPDATE_DISCONNECTED 1
)

FetchContent_Populate(asio)
include_directories($asio_SOURCE_DIR/asio/include/)

add_executable($PROJECT_NAME main.cpp)

main.cpp:

#define  ASIO_STANDALONE
#include <iostream>
#include "asio.hpp"

int main()std::cout<<"Hello, World!"<<std::endl;return 0;

错误:

CMakeFiles\Client.dir/objects.a(main.cpp.obj): In function `ZN4asio6detail17winsock_init_base7startupERNS1_4dataEhh':
C:/Users/Danila/Documents/Programming/C++/Client/cmake-build-debug/_deps/asio-src/asio/include/asio/detail/impl/winsock_init.ipp:38: undefined reference to `_imp__WSAStartup@8'
CMakeFiles\Client.dir/objects.a(main.cpp.obj): In function `ZN4asio6detail17winsock_init_base7cleanupERNS1_4dataE':
C:/Users/Danila/Documents/Programming/C++/Client/cmake-build-debug/_deps/asio-src/asio/include/asio/detail/impl/winsock_init.ipp:55: undefined reference to `_imp__WSACleanup@0'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [Client.exe] Error 1

2) 在项目中下载 ASIO。

CMake:

cmake_minimum_required(VERSION 3.14)
project(Client)

set(CMAKE_CXX_STANDARD 17)

include(FetchContent)

add_executable($PROJECT_NAME main.cpp)

main.cpp

#define  ASIO_STANDALONE
#include <iostream>
#include "asio-master/asio/include/asio.hpp"

int main()std::cout<<"Hello, World!"<<std::endl;return 0;

错误:

In file included from C:\Users\Danila\Documents\Programming\C++\Client\asio-master/asio/include/asio.hpp:18:0,
                     from C:\Users\Danila\Documents\Programming\C++\Client\main.cpp:3:
    C:\Users\Danila\Documents\Programming\C++\Client\asio-master/asio/include/asio/associated_allocator.hpp:18:34: fatal error: asio/detail/config.hpp: No such file or directory
    compilation terminated.
    CMakeFiles\Client.dir\build.make:61: recipe for target 'CMakeFiles/Client.dir/main.cpp.obj' failed
    mingw32-make.exe[3]: *** [CMakeFiles/Client.dir/main.cpp.obj] Error 1

我做错了什么?

另外,我尝试通过 boost 安装并包含 asio,但它也不起作用。

【问题讨论】:

【参考方案1】:

第一种方法有效。但是在 windows 中,mingw 需要在include_directories($asio_SOURCE_DIR/asio/include/) 之后添加link_libraries(ws2_32 wsock32)。 在linux下需要添加:SET(CMAKE_CXX_FLAGS "$CMAKE_CXX_FLAGS -DASIO_STANDALONE -pthread")

【讨论】:

以上是关于clion C++读取中文路径问题的主要内容,如果未能解决你的问题,请参考以下文章

当我在 CLion 2020.3 上使用远程工具链时,cmake 无法解析本地路径

clion如何打开中文文件夹

虚幻引擎(UE)C++,加载读取本地路径图片Texture2D

如何在 Clion 中使用虚拟环境从 C++ 调用 Python?

在 Windows 的 clion 中更新 cmake

如何在纯c++环境中使用qt中的图像?