Может ли CMake использовать g ++ для компиляции файлов C? - PullRequest
11 голосов
/ 07 октября 2011

Я работал над проектом, в котором я использовал g ++ для компиляции кода C в файлах, заканчивающихся на .c.Причина в том, что мне сказали, что в g ++ лучше предупреждающие сообщения.

Я переключаю процесс сборки для этого проекта на использование CMake.Я обнаружил, что изначально CMake хотел использовать gcc для компиляции C-файлов.Это не удалось из-за таких вещей, как объявление переменных во время использования.Поэтому я попытался использовать g ++ для компиляции файлов C, используя параметр

set(CMAKE_C_COMPILER_INIT g++)

в файле CMakeLists.txt.Но это приводит к сообщению об ошибке:

#error "The CMAKE_C_COMPILER is set to a C++ compiler"

Я переименовал свои файлы .c в .cpp, чтобы решить эту проблему, так как мне кажется, что это самый простой способ заставить все работать, и, возможно,лучший способ тоже.Но мне было интересно, можно ли заставить CMake использовать g ++ для компиляции C-файлов.

Ответы [ 2 ]

28 голосов
/ 08 октября 2011

Вы не должны переопределять компилятор для этой цели.Если вам действительно нужно скомпилировать ваши файлы C как C ++, вы должны научить cmake, что ваши файлы принадлежат языку C ++:

set_source_files_properties(filename.c PROPERTIES LANGUAGE CXX )
0 голосов
/ 23 марта 2018

Если вам нужно переключить весь проект, установите его в директиве project :

project(derproject LANGUAGES CXX)
...