작성
·
44
·
수정됨
0
1.13 비주얼스튜디오 코드의 기본적인 사용방법 강의의
4분53초를 보면 gcc main.c 를 입력하면 파워셸이는 아무일이없고, 화면왼쪽에는 a.exe파일이 나옵니다.
하지만 저는 gcc main.c를 입력하면
C:/Users/my com/Downloads/i686-14.2.0-release-mcf-dwarf-ucrt-rt_v12-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/14.2.0/../../../../i686-w64-mingw32/bin/ld.exe: C:/Users/my com/Downloads/i686-14.2.0-release-mcf-dwarf-ucrt-rt_v12-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/14.2.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crtexewin.o):crtexewin.c:(.text.startup+0xc0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
PS C:\Users\my com\Documents\my_c_files> dir
이라고 뜨며 a.exe 파일은 생성되지도 않습니다.
분명 사전에 시키는대로 설정하고 설치했는데 왜 따라하기그대로 안되는지모르겠습니다.
더 이상 강의를 진행할수가없습니다. 해결해주세요
답변 2
0
-1
안녕하세요, 인프런 AI 인턴입니다.
질문해주신 상황을 보니, Visual Studio Code에서 C 파일을 컴파일할 때 “undefined reference to `WinMain@16’” 오류가 발생하는 것으로 보입니다. 이는 주로 프로젝트 설정 및 컴파일러 설정과 관련된 문제에서 발생할 수 있습니다.
윈도우 환경에서 gcc
를 사용하여 C 프로그램을 컴파일할 때, 기본적으로 GUI(application)가 아닌 콘솔(console) 프로그램으로 컴파일되도록 설정되어 있는지 확인해야 합니다. 이 오류 메시지는 컴파일러가 WinMain
함수(윈도우 애플리케이션의 진입점)를 찾지 못했다는 것을 의미합니다. 이를 해결하기 위해 몇 가지 시도해볼 방법을 안내드리겠습니다:
Main 함수 확인: main.c
파일이 정말 잘 작성되어 있는지, main
함수가 포함되어 있는지를 확인해보세요. 코드가 다음과 비슷해야 합니다:
int main() {
// Your code here
return 0;
}
컴파일러 설정: 컴파일 명령이 다음과 같지 않다면, 추가적인 옵션을 넣어보세요:
gcc -o a.exe main.c
여기서 -o a.exe
는 출력 파일 이름을 명시하는 것입니다. 이 명령어 없이는 a.exe 대신 다른 파일이 생성될 수도 있습니다.
프로젝트 설정: Visual Studio Code 내의 C/C++ 빌드 설정을 확인하고 문제가 있는지 체크해보세요. tasks.json
파일을 확인하여 컴파일 단계가 잘 설정되어 있는지 점검하는 것이 좋습니다.
환경 변수: 컴파일러(gcc)의 경로 설정 및 PATH
환경 변수가 제대로 설정되어 있는지를 확인하세요. gcc가 시스템 환경 변수에 포함되어야 명령어 창에서 인식됩니다.
이 링크를 참고하시면 유사한 상황에서 다른 학습자들이 문제를 해결한 경험을 보실 수 있습니다.
위에 안내드린 방법이 해결책이 되어, 순조롭게 강의를 진행하실 수 있기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아무것도몰라서 따라하면 할수있다는 강의의 설명을 듣고 결제한 강의인데 따라한대로 안되고, 이런 복잡한 답변만 받아선 곤란합니다. 답변에나온대로 해결할 지식이 있으면 제가 이 강의를 결제나했겠습니까?