【C语言】CLion 同个项目运行多个 main 函数C文件

问题

在使用 CLion 编写C项目时,一个项目下如果包含多个C文件里有 main 函数,就会出现以下报错

mark

出现问题的原因

CMakeLists.txt 文件里,所有包含main 函数 C文件,都共用了这个 a,所有就会起冲突。

mark

解决

使 ‘CMakeLists.txt’ 文件能自动给 main函数文件 起不同的名字,就完美解决

CMakeLists.txt 文件内容

# 遍历项目根目录下所有的 .cpp 文件
file (GLOB files *.c */*.c)
foreach (file ${files})
    string(REGEX REPLACE ".+/(.+)\\..*" "\\0" exe ${file})
    add_executable (${exe} ${file})
    message (\ \ \ \ --\ src/${exe}.cpp\ will\ be\ compiled\ to\ bin/${exe})
endforeach ()

mark

技巧

# 如果你只需要根目录下的 test 文件夹的所有 .c 文件
file (GLOB files test/*.c)
# 如果你只有两层目录的话
file (GLOB files *.c */*.c)
# 同理,三层的话
file (GLOB files *.c */*.c */*/*.c)

# 官方提供了一种递归的方法
# 这样在运行框会多一个 CMakeCXXCompilerId,不过无伤大雅
file (GLOB_RECURSE files *.c)

mark

发表评论 / Comment

用心评论~