强制CMake在Visual Studio中使用C++编译器编译C文件

11
我已经生成了.h和.c文件,它们必须作为C++文件在Visual Studio中进行编译。我听说可以像这样做:set_source_files_properties( ${SOURCES} PROPERTIES LANGUAGE "CXX" )。与此同时,我也读到过不应该这样做,因为它只应在特殊情况下使用。
那么,强制CMake生成编译C文件为C++文件的VS项目的最佳方法是什么?
PS:重命名生成的文件不是一个选项。
1个回答

14

我一直在使用各个属性(很可能您也可以设置目录属性-但这不是那么细粒度)而没有任何问题。虽然不能用于设置语言(但为什么会有所不同呢?):

SET_SOURCE_FILES_PROPERTIES( file1.c PROPERTIES LANGUAGE CXX )
这在Linux和Windows下都可以使用,似乎没有任何问题。你听到了什么让你犹豫不决?

我一直在使用SET_SOURCE_FILES_PROPERTIES来设置特定的编译标志和定义,它非常好用。 - Anonymous
现代的方法是什么? - Royi
1
@Royi 我认为在现代 CMake 中它并没有改变太多。你可能可以尝试更改目标属性,但是文件的事情可能仍然保持不变。 - val is still with Monica
Clang打印了一个已弃用的消息:clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated [-Wdeprecated] - Salva Corts
能否通过命令行而非_CMakeLists.txt_文件来强制执行? - Sandburg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接