cc1plus.exe: ошибка: нераспознанный параметр командной строки '-fdump-class-иерархия' с CMake - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь записать в файл представление иерархии каждого класса и таблицы виртуальных функций моей программы на С ++. Мне удалось сделать это с успехом, когда я скомпилировал это из командной строки с этой опцией:

g++ -fdump-class-hierarchy main.cpp

Моя проблема сейчас в том, что когда я пытался сделать это с помощью cmake, у меня не получилось. Опция -fdump-class-иерархия никогда не использовалась. Вот мой 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. Кстати, кто-нибудь знает какой-либо способ вывести только мой код класса

Вот проблема вывода

"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

1 Ответ

0 голосов
/ 04 января 2019

Ваша сборка CLion / CMake вызывает порт mingw-w64 GCC g++ 8.1.Опция компилятора C ++ -fdump-class-hierarchy была доступной в GCC 7.x и более ранних версиях, но была удалена в 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 не удалась).

...