在构建时报错不知怎么解决



网上查了很多方法但是没有解决,有的让改cmakelists的内容,但是我src下没有改文件是后来自己创建的。
在构建时报错不知怎么解决



网上查了很多方法但是没有解决,有的让改cmakelists的内容,但是我src下没有改文件是后来自己创建的。
关注引自免费微信小程序:皆我百晓生
从提供的错误信息来看,主要存在两个问题:一是有多个main函数的定义,二是编译器在处理CMakeFiles目录下的CompilerIdC*和CompilerIdCXX*文件时遇到了重复定义的符号。下面我会逐一解释并提供可能的解决方案。
main函数定义错误信息显示在D:\BS\test\EDN\BS\Core\Src/main.c:91有多重定义的main函数。每个程序只能有一个main函数作为程序的入口点。请检查以下几个方面:
确认main.c文件:确保你的项目中只有一个main.c或main.cpp文件,并且它只包含一个main函数。
检查其他源文件:确认没有其他源文件(比如display.c、getc.c等)错误地包含了main函数的定义。
链接问题:有时候,如果你的CMake配置错误,可能会导致多个源文件被意外地编译并链接到一起。确保CMakeLists.txt正确指定了要编译的源文件。
main函数:确保仅在一处定义main函数。如果其他文件误包含了main函数,请移除这些定义。错误信息还提到在CompilerIdC*和CompilerIdCXX*文件中有重复定义的符号,比如info_arch、info_platform、info_compiler。这些文件通常由CMake在首次配置项目时自动生成,用于检测编译器的能力。错误表明这些文件可能被意外地加入了最终的编译和链接过程中。
检查CMakeLists.txt:确保这些文件没有被错误地添加到你的可执行目标的源文件列表中。例如,确保没有类似下面这样的错误行:
add_executable(BS.elf main.c display.c getc.c CMakeFiles/3.28.1/CompilerIdC/CMakeCCompilerId.c)
应该确保只有你的实际源文件被列出:
add_executable(BS.elf main.c display.c getc.c)
清理构建文件:由于这些错误可能是由于之前的构建配置遗留下来的,尝试完全清理并重新生成构建文件。可以使用CMake的清理命令:
rm -rf cmake-build-debug
cmake ..
make
或者如果你使用的是Windows环境和MinGW,使用对应的命令清除构建目录后重新运行CMake和构建。
检查CMake缓存:确保没有遗留的配置选项影响到了编译过程。你可以通过删除CMakeCache.txt文件来强制CMake重新配置项目。
main函数定义。希望这些建议能帮助你解决问题。如果问题依旧,可能需要更详细的项目配置信息来进行进一步分析。