CodeBlocks定义异常:multiple definition of 和 first defined here
基于链表实现贪吃蛇案例时候,在CodeBlocks的CPP源文件定义函数和全局变量均报错
异常现象
- 在**自定义的
cpp
**文件定义全局变量、对象、函数等均出现重复定义和首次定义
multiple definition of `Controller::showCopy()
first defined here
异常解决方案
正确代码
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file><FileVersion major="1" minor="6" /><Project><Option title="实训-数据结构" /><Option pch_mode="2" /><Option compiler="gcc" /><Build><Target title="Debug"><Option output="bin/Debug/实训-数据结构" prefix_auto="1" extension_auto="1" /><Option object_output="obj/Debug/" /><Option type="1" /><Option compiler="gcc" /><Compiler><Add option="-g" /></Compiler></Target><Target title="Release"><Option output="bin/Release/实训-数据结构" prefix_auto="1" extension_auto="1" /><Option object_output="obj/Release/" /><Option type="1" /><Option compiler="gcc" /><Compiler><Add option="-O2" /></Compiler><Linker><Add option="-s" /></Linker></Target></Build><Compiler><Add option="-Wall" /><Add option="-fexceptions" /></Compiler><Unit filename="snake.cpp"><Option target="<{~None~}>" /></Unit> <Unit filename="list.h"><Option target="<{~None~}>" /></Unit><Unit filename="main.cpp" /><Extensions><lib_finder disable_auto="1" /></Extensions></Project>
</CodeBlocks_project_file>
核心代码
<Unit filename="list.h"><Option target="<{~None~}>" />
</Unit>
<Unit filename="list.h">
:这可能表示一个单元或模块的名称是“list.h”。filename
属性可能指示这个单元或模块关联的文件名是“list.h”。<Option target="<{~None~}>" />
:这可能描述了一个选项。target
属性可能表示这个选项的目标或关联的对象。"<{~None~}>"
看起来像是一个特殊的标记或占位符,可能表示没有特定的目标或值。
错误示例
<Unit filename="snake.cpp" />
<Unit filename="list.h"><Option target="<{~None~}>" />
</Unit>
<Unit filename="main.cpp" />
- 配置文件中的引入的源文件缺失子元素
<Option target="<{~None~}>" />
正确示例
<Unit filename="snake.cpp"><Option target="<{~None~}>" />
</Unit>
<Unit filename="list.h"><Option target="<{~None~}>" />
</Unit>
<Unit filename="main.cpp" />