해결된 질문
작성
·
173
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
윈도우에서 visual studio code로 c++ 환경을 셋팅하려고 하는데, 계속 똑같은 오류가 발생합니다.
MSYS2 통해서 MinGW-w64 toolchain 다운로드 받고 환경변수까지 다 설정했습니다.
https://code.visualstudio.com/docs/cpp/config-mingw#_prerequisites
.cpp 파일 만들어서 g++ -std=c++14 -Wall a.cpp -o a.out 명령어를 치면
C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main':
C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:67:(.text.startup+0xc5): undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
해당 에러가 발생합니다. 이걸 어떻게 해결해야 할지 모르겠습니다. (c/c++ configuration ui 설정까지 다 했습니다.)
이를 해결할 방법이나 윈도우에서 visual studio code에서 c++ 환경을 셋팅하는 방법을 알려주시면 감사하겠습니다.
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
songmi0054님께서 윈도우 환경에서 Visual Studio Code를 이용하여 C++ 개발 환경을 설정하시다가 발생한 오류에 대해 설명드리겠습니다. 해당 오류는 주로 main
함수가 아닌 WinMain
함수가 정의되어야 하는 경우에 발생합니다. 이는 Windows 어플리케이션에서 GUI 애플리케이션을 개발할 때 주로 발생하는 이슈입니다. 콘솔 애플리케이션 개발을 원하신다면 다음과 같은 방법을 시도해 보시길 바랍니다.
int main()
함수로 시작하고 있는지 확인해주세요. 만약 없다면, main
함수가 제대로 작성되어 있는지 확인하시기 바랍니다.#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
파일 확장자 및 컴파일 옵션 확인:
.cpp
확장자로 저장되어 있는지 확인해주세요.-o a.out
대신 -o a.exe
로 변경해보세요.MSYS2 및 MinGW 환경 변수 이름 확인: PATH
환경 변수에 정확히 MinGW의 bin
디렉토리가 포함되어 있는지 확인해주세요.
C:\msys64\ucrt64\bin
Visual Studio Code 설정:
tasks.json
에서 올바른 컴파일러 경로가 설정되어 있는지 확인해 보세요.{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
WinMain
오류가 발생할 경우, -mwindows
등을 제거해 보시고, 단순히 g++
옵션으로 링크해보세요.songmi0054님과 유사한 질문이 존재하는 다음의 링크를 통해 추가 정보를 얻을 수 있습니다:
- C++ 초기설정 에러 문의
위의 방법들로 오류가 해결되지 않는다면, 좀 더 구체적인 코드 또는 설정 내용을 공유해주시면 추가적인 도움이 될 것입니다. 질문자님의 이해를 돕고 유사한 문제를 해결하신 분들의 경험을 공유드리고자 합니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.