我曾在一个项目中使用过g ++来编译以.c结尾的文件中的C代码。原因是我被告知g ++有更好的警告信息。CMake可以使用g ++编译C文件吗?
我正在切换此项目的构建过程以使用CMake。我发现最初CMake想使用gcc编译C文件。由于诸如在使用时声明变量之类的事情而失败。所以我尝试使用g ++编译C文件,使用CMakeLists.txt文件中的设置
set(CMAKE_C_COMPILER_INIT g++)
。但是,这将导致错误消息:
#error "The CMAKE_C_COMPILER is set to a C++ compiler"
我一直在重命名我的.c文件到.CPP来解决这个问题,因为这似乎是最简单的办法,我把事情的工作,也许是最好的办法太。但我想知道是否可以强制CMake使用g ++来编译C文件。
“原因是我被告知g ++有更好的警告信息。 - 你能证实吗?我会说这是非常可疑的,因为(据我所知)这两个只是调用具有不同参数的相同编译器(语言,包含路径,链接到的标准库等)的驱动程序。除此之外,g ++不是C编译器,所以你最终编写非常差的C++。 – delnan
如果你正在编写C语言,那么使用C编译器进行编译。 C和C++不是一回事。 – Kusalananda
你说'_This失败,因为像使用time_'声明变量的东西';这听起来像你在C89模式下使用GCC,而不是C99模式。尝试添加'-std = c99'到C编译器 - 不知何故。 –