안녕하세요! M1 맥북에서 VSCode로 C++ 개발하시는데 linker error가 발생하신다고 하셨네요. M1 맥북은 ARM 아키텍처를 사용하기 때문에, C++ 코드를 컴파일할 때는 x86_64 아키텍처에서 실행되는 코드와 호환성 문제가 있을 수 있습니다. 에러 메시지에서 말하는 "아키텍쳐64의 심볼을 찾을수가 없다"는 것은, 컴파일러가 x86_64 아키텍처에서 실행되는 라이브러리나 오브젝트 파일에서 필요한 함수나 변수를 찾지 못한다는 것입니다. 이 문제를 해결하기 위해서는, ARM 아키텍처에서 실행되는 라이브러리나 오브젝트 파일을 사용해야 합니다. 다음과 같은 방법으로 해결할 수 있습니다: Rosetta를 사용하여 x86_64 바이너리 실행하기 1. Rosetta는 M1 맥북에서 x86_64 아키텍처에서 실행되는 바이너리를 실행할 수 있게 해주는 에뮬레이션 레이어입니다. - VSCode를 실행할 때 Rosetta 모드로 실행하면 x86_64 아키텍처에서 실행되는 컴파일러를 사용할 수 있습니다. - VSCode를 선택하고 ' Get Info '를 클릭한 후 ' Open using Rosetta ' 옵션을 선택합니다. - 이후 터미널에서 ' arch -x86_64 gcc ' 또는 ' arch -x86_64 g++ '와 같이 ' -x86_64 ' 옵션을 사용하여 x86_64 아키텍처에서 실행되는 컴파일러를 사용합니다. 2. ARM 아키텍처에서 실행되는 라이브러리 빌드하기 - 컴파일러 옵션으로 ' -arch arm64 '를 추가하여 ARM 아키텍처에서 실행되는 라이브러리를 빌드할 수 있습니다. - 이렇게 빌드한 라이브러리를 사용하여 C++ 코드를 컴파일하면 linker error가 발생하지 않습니다. 3. Homebrew를 사용하여 ARM 아키텍처에서 실행되는 라이브러리 설치하기 - Homebrew는 ARM 아키텍처에서 실행되는 라이브러리를 설치할 수 있게 해줍니다. - ' brew install gcc '와 같이 ARM 아키텍처에서 실행되는 라이브러리를 설치한 후, 컴파일러 옵션으로 ' -L/usr/local/lib/gcc/11/ '와 같이 라이브러리 경로를 추가하여 컴파일할 수 있습니다. 이러한 방법을 시도해보시기 바랍니다

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 3월 30일 오전 11:07

댓글 0