Luk*_*uke 4 c++ g++ cmake c++17
我在 Linux Mint 19.2 上使用 g++-9 和 c++17。编译器实际上是告诉我将其包含<memory>在我已经包含它的位置附近:
/home/luke/workspace/crab/Src/Brain/EpisodicMemory.cpp:2:1: note: \xe2\x80\x98std::make_unique\xe2\x80\x99 is defined in header \xe2\x80\x98<memory>\xe2\x80\x99; did you forget to \xe2\x80\x98#include <memory>\xe2\x80\x99?\n 1 | #include "EpisodicMemory.h"\n +++ |+#include <memory>\n 2 | #include <memory>\nRun Code Online (Sandbox Code Playgroud)\n\n我可以用这个最小的例子产生错误:
\n\n#include <memory>\nint main(int argc, char** argv) {\n std::unique_ptr<int> test = std::make_unique<int>(4);\n return 0;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n实在不知道怎么回事。
\n\n这是我的 CMakeLists.txt (因为你不相信我正在使用 c++17):
\n\ncmake_minimum_required(VERSION 3.10)\nproject(crab)\nfind_package(Qt5Widgets)\nset(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wall -O0 -g -fsanitize=address -std=c++17 -fPIC")\nset(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")\ninclude_directories(${Qt5Widgets_INCLUDE_DIRS})\n#file(GLOB BRAIN_FILES Brain/*.cpp Brain/*.h)\n#add_executable(crab ${BRAIN_FILES} main.cpp)\nadd_executable(crab main.cpp)\ntarget_link_libraries(crab Qt5::Widgets)\nRun Code Online (Sandbox Code Playgroud)\n\n我认为链接 Qt 可能会改变我的编译器设置,但我不知道为什么会发生这种情况
\n| 归档时间: |
|
| 查看次数: |
6597 次 |
| 最近记录: |