2023. 7. 22. 15:47ㆍc++/에러
에러가 안생기는게 이상하지
환경 세팅을 위해 구글링 하면서 그대로 따라하느라 코드 복사하라는거 이해도 못하고 붙여넣으며 했다.
뭔지도 모르고 하니까 에러가 생기지
일단 앞서 Build 과정이 뭔지 요약해보자.
Build 한다는 것은
1. VS Code 같은 에디터 툴에 코드를 작성 ( VS Code는 코드를 작성할 수 있는 스케치북 같은거라 생각하시면 돼요)
2. 작성한 코드를 기계어로 바꿔주기 위해 컴파일러를 쓸거다.
(컴파일러로는 주로 GCC나 Clang을 사용하는데 MINGW가 Window 환경에서 GCC와 관련된 도구들을 제공하는
프로그램 모음이기 때문에 Window환경에서 작업하시면 이거 설치하시면 좋아요.
저는 Window환경이라 MINGW설치해서 진행했습니다. )
((얘 쓰면 리눅스나 맥에서와 동일한 컴파일러 환경 구성할 수 있대요!
3. 링킹(linking) : 소스파일이 여러개면 컴파일된 기계어 코드를 하나파일로 합치는 과정
4. 실행파일 생성 << .exe붙은 파일이 만들어짐
ㅇㅋ 과정은 알겠고 진행하는데
구글링을 통해 MINGW까지 설치하고 Hello World 출력해볼라고 코드도 짰는데 .exe 파일이 만들어지지않는다.
환경변수도 잘 설정해줬는데 왜 그러냐
빌드오류가 발생했다 여기서 정말 한참 헤맸다.
( 또또 캡쳐를 안해서 첨부할 사진이 없는데 )
제 경우에는 상관도 없는 MySQL경로가 찾아지지 않는다고 오류가 나서 어리둥절했어요.
다양한 오류메세지가 뜨겠지만 각설하고 .exe파일이 만들어지지않는다면 tasks.json 파일에 문제가 있을 확률이 높아요.
tasks.json파일을 살펴봅시다.
tasks.json 파일은 주로 빌드, 컴파일, 테스트 등의 작업을 자동화하는데 사용됩니다.
우리는 여기서 tasks에서 "args"속성을 설정해줄거에요
위는 올바르게 수정한 이미지입니다. 하나하나 살펴보면 다음과 같습니다.
- "-g": 디버그 정보를 포함하여 컴파일합니다.
- "${fileDirname}\${fileBasename}": 컴파일할 소스 파일의 경로와 이름을 전달합니다.
- "-o": 컴파일된 실행 파일의 출력 경로와 이름을 전달합니다.
- "${fileDirname}\${fileBasenameNoExtension}.exe": 컴파일된 실행 파일의 출력 경로와 이름을 지정합니다.
- "-lstdc++": C++ 코드에서 사용하는 표준 라이브러리인 "libstdc++"를 링크합니다.
이제 제 문제점을 짚어보겠습니다 하하 ( 저 위 사진이 코드 수정한 잘 돌아가는 화면입니다 )
프로젝트 아래에 helloworldcpp 폴더를 만들고 그 안에 .cpp파일을 만들었죠? (주목)
이전에 안돌아가는 코드를 살펴보니!
args부분에 "-g"와 "-o" 사이에 ${file} 보이시죠
이게 문제인겁니다 .. 왜냐하면 저는 helloworldcpp 폴더안에 파일을 만들었기 때문에
"-g"와 "-o" 사이에 "${fileDirname}\\${fileBasename}" 이렇게 쳐줘야해요.
${fileDirname} --> 폴더이름
\\${fileBasename} --> 그 폴더 하위에 파일이름
게다가 위에는 냅다 구글링해서 복붙해가지고 첫번째줄에 컬러로 진단메세지 출력하는 옵션도 들어있는데
전 필요없으니 지워버렸습니다.
마지막 코드인 "-lstdc++"이거는 링킹하는건데 이거 없어도 돌아갑니다.
암튼 중요한건 "-g"랑 "-o" 사이에 올바른 경로를 입력해주기 !!
코딩초보는 웁니다. 이 기회에 코드 한줄 한줄이 뭘 의미하는지 제대로 공부했어요 하하
경로 제대로 입력해주는건 당연한건데 ;;
그걸 모른 저를 기록해봤슴다.
그래 컴퓨터가 뭘 잘못했겠어. 제대로 입력시키지 못한 내가 문제지..
해결했으니까 됐다
'c++ > 에러' 카테고리의 다른 글
vscode c++ : #include <iostream> 밑줄 에러 (0) | 2023.07.22 |
---|