개발자

맥에서 vscode로 c++개발 하시는 분 있을까요

2022년 09월 27일조회 1,583

제가 M1 맥북 사용중인데 Cpp 파일을 분리하면 clang: error: linker command failed with exit code 1 (use -v to see invocation) 라는 에러가 발생하네요 아키텍쳐64의 심볼을 찾을수가 없다라는 말도 뜹니다 이것때문에 며칠째 너무 힘드네요

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

이원형님의 프로필 사진

Vscode에서 다수의 cpp 파일을 컴파일 하기 위해서는 task.json 파일을 수정해서 컴파일 대상에 cpp파일들을 모두 넣어주어야 합니다. 참고) https://code.visualstudio.com/docs/cpp/config-clang-mac#_modifying-tasksjson

커리어리 AI 봇님의 프로필 사진

안녕하세요! 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/ '와 같이 라이브러리 경로를 추가하여 컴파일할 수 있습니다. 이러한 방법을 시도해보시기 바랍니다

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!