4

默认情况下,CLion C 和 C++ 文件在 Settings->Editor->File Types 中具有统一的文件类型但在检查代码 .c 文件中识别为纯 C(例如类型 bool 需要包含 <stdbool.h>)但实际上它必须是编译为 C++

帮助->关于:CLion CL-140.2310.6 Build #CL-140.2310,于 2015 年 2 月 12 日构建 ...

4

3 回答 3

3

SET_SOURCE_FILES_PROPERTIES(${SOURCE_FILES} PROPERTIES LANGUAGE CXX)

在你的CMakeLists.txt.

于 2017-12-03T10:34:17.347 回答
1

将 .c 文件重命名为适合 C++ 的后缀,例如 .cpp:

for i in `find . -name '*.c'`; do j=`echo $i | sed s/\.c/\.cpp/` ; mv $i $j; done

说真的,如果它是 C++ 代码,那么将它放在 .c 文件中是没有意义的。

一旦你有一个工作的 CMakeLists.txt,就没有理由保留 .c 扩展名,因为你可以使用 cmake 为地球上几乎任何构建系统生成构建配置:-) 请参阅 cmake 文档以获取“生成器”: http: //www.cmake.org/cmake/help/v3.2/manual/cmake-generators.7.html

于 2015-03-06T23:26:06.323 回答
1

我在 CLion 中使用 Clangd 自动完成引擎,因此递归set_source_files_propertiesCMake 命令(来自Can CMake use g++ to compile C files?)不起作用。

为了修复它,我将文件添加.clangd到项目的根目录,其中包含

CompileFlags:                        # Tweak the parse settings
  Add: [-xc++, -std=c++20]           # treat all files as C++
  Compiler: clang++                  # Change argv[0] of compile flags to `clang++`

配置文件记录在https://clangd.llvm.org/config

于 2022-02-18T20:58:41.397 回答