cc1plus.exe: error: unrecognized command line option '-fdump-class-hierarchy' with CMake
cc1plus.exe: error: unrecognized command line option '-fdump-class-hierarchy' with CMake
我正在尝试将我的 c++ 程序的每个 class 层次结构和虚函数 table 布局的表示转储到一个文件中。当我使用以下选项从命令行编译它时,我成功地做到了:
g++ -fdump-class-hierarchy main.cpp
我现在的问题是,当我尝试用 cmake 制作它时,我失败了。选项 -fdump-class-hierarchy 从来没有 used.Here 是我的 CmakeList.txt
cmake_minimum_required(VERSION 3.10.2)
project(VTable)
set(CMAKE_CXX_STANDARD 14)
find_path(GCC_PATH g++.exe)
message("GCC_PATH = ${GCC_PATH}")
set(CMAKE_CXX_COMPILER "${GCC_PATH}/g++")
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wno-unused-variable -fdump-class-hierarchy")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
add_executable(VTable main.cpp Grandparent.cpp Parent1.cpp Parent2.cpp Child.cpp)
谁能帮我从 CmakeList.txt 中获取转储文件输出。顺便问一下,有谁知道只转储我的 class 代码
的方法吗?
这是问题输出
"C:\Program Files\JetBrains\CLion 2018.2.4\bin\cmake\win\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" "path"
GCC_PATH = C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin
-- Configuring done
-- Generating done
-- Build files have been written to: path/cmake-build-debug
Problems were encountered while collecting compiler information:
cc1plus.exe: error: unrecognized command line option '-fdump-class-hierarchy'
[Finished]
我正在使用 CLion IDE
您的 CLion/CMake 构建调用 GCC g++
8.1 的 mingw-w64 端口。 C++ 编译器选项 -fdump-class-hierarchy
是 available in GCC 7.x 及更早,但
removed in GCC 8.x。这就是为什么:
cc1plus.exe: error: unrecognized command line option '-fdump-class-hierarchy'
在您的 CLion 构建中。如果控制台命令行:
g++ -fdump-class-hierarchy main.cpp
成功然后它调用了不同的早期版本的 g++
来自不同的
GCC 安装 - 可能在 PATH
中比 C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/g++.exe
更早发现,
或者可能是在另一台计算机上发现的(因为您没有声明它是
您的 CLion 构建失败的同一台)。
我正在尝试将我的 c++ 程序的每个 class 层次结构和虚函数 table 布局的表示转储到一个文件中。当我使用以下选项从命令行编译它时,我成功地做到了:
g++ -fdump-class-hierarchy main.cpp
我现在的问题是,当我尝试用 cmake 制作它时,我失败了。选项 -fdump-class-hierarchy 从来没有 used.Here 是我的 CmakeList.txt
cmake_minimum_required(VERSION 3.10.2)
project(VTable)
set(CMAKE_CXX_STANDARD 14)
find_path(GCC_PATH g++.exe)
message("GCC_PATH = ${GCC_PATH}")
set(CMAKE_CXX_COMPILER "${GCC_PATH}/g++")
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wno-unused-variable -fdump-class-hierarchy")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
add_executable(VTable main.cpp Grandparent.cpp Parent1.cpp Parent2.cpp Child.cpp)
谁能帮我从 CmakeList.txt 中获取转储文件输出。顺便问一下,有谁知道只转储我的 class 代码
的方法吗?这是问题输出
"C:\Program Files\JetBrains\CLion 2018.2.4\bin\cmake\win\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" "path"
GCC_PATH = C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin
-- Configuring done
-- Generating done
-- Build files have been written to: path/cmake-build-debug
Problems were encountered while collecting compiler information:
cc1plus.exe: error: unrecognized command line option '-fdump-class-hierarchy'
[Finished]
我正在使用 CLion IDE
您的 CLion/CMake 构建调用 GCC g++
8.1 的 mingw-w64 端口。 C++ 编译器选项 -fdump-class-hierarchy
是 available in GCC 7.x 及更早,但
removed in GCC 8.x。这就是为什么:
cc1plus.exe: error: unrecognized command line option '-fdump-class-hierarchy'
在您的 CLion 构建中。如果控制台命令行:
g++ -fdump-class-hierarchy main.cpp
成功然后它调用了不同的早期版本的 g++
来自不同的
GCC 安装 - 可能在 PATH
中比 C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/g++.exe
更早发现,
或者可能是在另一台计算机上发现的(因为您没有声明它是
您的 CLion 构建失败的同一台)。