gcc - CMake 可以使用 g++ 来编译 C 文件吗?

标签 gcc g++ cmake

我曾在一个项目中使用 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 文件。

最佳答案

您不应为此目的覆盖编译器。如果你真的需要将你的 C 文件编译为 C++,那么你应该教 cmake 你的文件属于 C++ 语言:

set_source_files_properties(filename.c PROPERTIES LANGUAGE CXX )

关于gcc - CMake 可以使用 g++ 来编译 C 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690800/

相关文章:

c++ - 为什么 GCC 为 0.0/0.0 产生 -nan 和 clang 和 intel 产生 +nan?

c++ - 动态加载库和共享全局符号

powershell - 如何编写中间带有参数的PowerShell别名?

Unix - "xargs"- 输出 "in the middle"(不在最后!)

cmake - 如何使用 -D 将列表传递给 CMake?

c++ - CMAKE 链接外部 c 库

c++ - CMake 链接器无法正常工作

c - Cygwin 的 GCC 与 Windows 上的 MSVC 编译器之间是否存在任何性能问题?

c++ - 通过手动安装库来修复gcc undefined include <>

gcc - ICC 中 -fp-model fast=1 的 GCC/Clang 等价物是什么