STM32CubeIDE multi definition link error

STM32CubdeIDE를 최신버전을 설치한 후, 구 버전으로 작업한 프로젝트를 빌드하니 아래와 같은 에러가 발생한다. 컴파일러 버전도 함께 업데이트 되면서 발생한 문제로 생각되며, 이렇게 코딩하면 안되는데 임베디드 개발자의 습관이 무서운지라, constant로 여러 파일에 동일 이름으로 변수를 선언해서 발생한 문제인 것 같다.

이걸 어떻게 해야 하나, 검색해보니 스택오버플로우에서 -fcommon 옵션을 추가하면 이런 문제를 피할 수 있다고 한다. 그래서 아래와 같이 컴파일 옵션에 -fcommon을 추가하여 이 문제를 회피할 수 있었다.

컴파일러 버전이 올라가면서 잘못된 코딩 방법으로 작성된 코드를 에러로 처리하는 경우가 점점 늘어나는 것 같은데, 예전 프로젝트를 가끔 빌드할 때마다 이런 문제가 발생하면 순간 당황할 때도 점점 늘어나는 것 같다.