작성
·
54
·
수정됨
1
안녕하세요.
4.2강에서 러닝타임 31분 즈음에 나오는 코드를 저의 맥에 설치된 VS CODE에서 실행했을 때 에러가 발생하여 질문 드립니다. 코드는 아래와 같이 작성하였고, 강의에서 실행한 코드와 동일하다고 보여집니다. cpp 파일을 include 하는 것은 실행이 잘 되었으나, extern과 함께 전방 선언을 써서 다른 cpp 파일에 있는 함수를 가져오는 부분이 실행이 안되고 있습니다. 아래 제가 작성한 코드를 살펴봐주시면 감사하겠습니다.
main.cpp
main_sub.cpp
에러메시지
답변 4
1
안녕하세요? 질문&답변 도우미 Soobak 입니다.
추가 작성해주신 글의 말씀처럼 터미널에서 직접 명령어를 입력하여도 되지만,
그 과정을 VSCode 설정을 통해서 자동으로 진행될 수 있도록 할 수 있습니다.
VSCode설정과 관련된 내용은 교수님의 무료 강의 코테용 C++ 핵심 정리의 환경 설정 강의(링크) 의 15:50 부분 이후의 내용을 참고하여 따라해보시면 도움이 되실 것 같습니다.
추가적으로, 해당 강의의 설정파일(.vscode
접두사 디렉토리들 중 환경에 맞는 디렉토리의 설정 파일을 참고해보시면 됩니다.)을 살펴보실 수 있는 강의 깃허브 링크를 첨부드립니다.
https://github.com/HongLabInc/HongLabCppSummary(링크)
0
0
이 문제와 관련해 찾아본 결과, 일부 MAC에서 돌아가는 VSCODE가 파일들을 자동으로 연결시켜주지 않아서 생기는 문제임을 알게 됐습니다.
아래와 같이 터미널에서 직접
g++ main.cpp main_sub.cpp -o main
./main
명령어를 실행했을 때 해당 프로그램이 잘 동작함을 확인했습니다.
그렇다면, 제 질문은 MAC의 VSCODE에서 이 파일들을 링킹할 수 있게 하려면 어떤 설정을 해야되는지 여쭙고 싶습니다.
0
안녕하세요, 인프런 AI 인턴입니다. Jihoon님.
링커 오류는 주로 프로젝트에 포함된 소스 파일 간에 연결 관계가 올바르게 지정되지 않았을 때 발생합니다. 작성해 주신 코드와 실행 명령을 보니, 여러 소스 파일을 함께 컴파일하는 과정에서 문제가 발생하고 있는 것 같습니다. 링커는 main.cpp
에서 호출한 doSomething
함수를 찾지 못하고 있습니다.
여러 관련 질문들이 도움을 줄 수 있을 것 같습니다.
main.cpp
에서 다른 소스 파일(different.cpp
)에 정의된 함수를 호출하는 방법과 링커가 어떻게 이를 처리하는지를 다루고 있습니다.VS Code
에서 C++ 파일을 컴파일할 때 발생하는 링크 오류와 그 해결 방법을 설명하고 있습니다.외부 cpp에 있는 네임스페이스는 어떻게 직접적으로 링킹이 가능한가요?
extern
키워드와 전방 선언을 사용하여 컴파일하는 방법을 설명합니다.Inner class를 이용하여 정적 멤버 변수를 초기화하는 과정에 대한 질문입니다.
해결 방법 요약:
같은 디렉토리에 있는 여러 개의 소스 파일을 컴파일 할 때, 모든 소스 파일을 컴파일 명령에 포함시켜야 합니다. 아래와 같이 g++
명령어를 수정해 보세요:
g++ main.cpp main_sub.cpp -o main
이렇게 하면 main.cpp
와 main_sub.cpp
를 동시에 컴파일하여 main
이라는 실행 파일을 생성하게 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요? 말씀하신 내용 확인 후 본 질문의 답글에 답변을 작성드렸습니다.