본문 바로가기

기초공부

[vscode/MAC] ld: 1 duplicate symbol for architecture x86_64 오류 뜰 때

일단 시험이 안 끝나서 여기에 포스팅,,,

그림1


처음에 vscode C++ 설정을 마치고 나면 그림1과 같이 실행된다.

vscode 공식 문서를 읽다가 "You can modify your tasks.json to build multiple C++ files by using an argument like "${workspaceFolder}/*.cpp" instead of ${file}." 라고 하길래 tasks.json 파일을 수정했다.
되는지 실제로 시험해 봤더니 아래와 같은 오류가 떴다.

그림2

그림3


이전에는 실행 되었던 파일들도 안 된다.

여기에서는 XCode의 경우지만 main이 중복돼서 그렇다고 한다.
생각해보니 보통 c++ 환경에서는 한 프로그램을 다중 파일로 구성시켜 실행시킨다. 공식 문서에서도 그걸 의미한 것 같았다.
그래서 가설을 증명하고자 간단한 실험을 진행했다.

그림4

그림5

그림6


잘 실행된다