我参与了一个项目,我使用g ++在以.c结尾的文件中编译C代码.原因是我被告知g ++有更好的警告信息.
我正在切换这个项目的构建过程以使用CMake.我发现最初CMake想用gcc来编译C文件.由于在使用时声明变量之类的事情,这失败了.所以我尝试使用g ++来编译C文件
set(CMAKE_C_COMPILER_INIT g++)
Run Code Online (Sandbox Code Playgroud)
在CMakeLists.txt文件中.但这会导致错误消息:
#error "The CMAKE_C_COMPILER is set to a C++ compiler"
Run Code Online (Sandbox Code Playgroud)
我一直在将.c文件重命名为.cpp来解决这个问题,因为这似乎是让我工作的最简单方法,也许也是最好的方法.但我想知道是否有可能迫使CMake使用g ++来编译C文件.
And*_*aev 29
您不应为此目的覆盖编译器.如果你真的需要将C文件编译为C++,那么你应该教cmake你的文件属于C++语言:
set_source_files_properties(filename.c PROPERTIES LANGUAGE CXX )
Run Code Online (Sandbox Code Playgroud)