【问题标题】:clion can't resolve std typesclion 无法解析标准类型
【发布时间】:2020-05-23 04:43:06
【问题描述】:

我搜索了一些类似的问题,例如Clion can't resolve c++11 std types,并按照提问者的方式进行操作,但 Clion 仍然无法识别 std 变量,并要求我使用 std::string 而不是 string。这可以通过在文件顶部添加using namespace std 来解决,但是我不喜欢在每个文件中都添加此代码,那么我该如何解决这个问题呢? 这是我的 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(myapp)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories(".")
set(HeadFileDirList "")
file(GLOB SRCH_LIST comm2/*.h comm2/*/*.h comm2/*/*/*.h comm2/*/*/*/*.h comm2/*/*/*/*/*.h mmcomm/*.h mmcomm/*/*.h mmcomm/*/*/*.h mmcomm/*/*/*/*.h mmcomm/*/*/*/*/*.h)
foreach(src ${SRCH_LIST})
    string(REGEX REPLACE "[^/\\\\]+$" "" HeadFileDir ${src})
    message(STATUS ${HeadFileDir})
    include_directories(${HeadFileDir})
endforeach()
add_executable(myapp main.cpp)

这是 Clion 错误 clion error

【问题讨论】:

  • 我找到了原因,因为comm2lib中有一些语句,但是我没有包含这个目录,当我将这个目录复制到我的项目下时,它可以正常工作....

标签: c++ c++11 std clion


【解决方案1】:

std 类型存在于std 命名空间中,因此必须使用std:: 或使用语句using namespace std; 进行限定。在您的情况下,您可以将string 替换为std::string,并同样替换std 中的其他名称,例如std::cout

【讨论】:

  • 感谢您的回复!是我的错,现在可以正常使用了
猜你喜欢
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
相关资源
最近更新 更多