본문 바로가기
스마트 장치 개발/QT and Symbian

git 설치 후 QT 컴파일 에러 발생하는 경우 해결 방안

by leo21c 2026. 3. 18.

갑자기 git를 설치하고 환경변수 path에 git의 경로를 지정한 이후부터 QT Creator로 빌드를 하면 에러가 발생했다.
에러 내용을 보면 경로가 이상하게 표시가 된다. \가 없이 폴더 이름과 파일 이름이 붙어서 표시가 되고 경로에 파일이 존재하지 않아서 에러가 발생하는 것이었다.

그래서 자료를 찾아 보니 아래와 같은 내용이 존재해서 기록해 놓는다.

 

아래 내용도 해 보았지만 가장 간단하게 git의 path를 삭제하고 빌드를 재시도 해서 문제가 없는지 확인을 하는 것이 가장 좋다.


Git 설치 후 PATH 환경변수에 Git 경로가 추가되면, Qt 빌드 도구인 make가 윈도우 기본 쉘(cmd.exe)이 아닌 Git과 함께 설치된 유닉스 형태의 쉘(sh.exe)을 우선적으로 참조하게 되어 빌드 오류가 발생할 수 있습니다.

검색한 것과 같이 SHELL=cmd.exe 파라미터를 사용하면 이 문제를 해결할 수 있습니다. 

1. 원인: Git의 sh.exe와 make의 충돌

  • 쉘의 우선순위: mingw32-make는 시스템 PATH에서 sh.exe를 발견하면 이를 기본 쉘로 사용하려고 시도합니다.
  • 경로 해석 오류: sh.exe는 리눅스 방식의 경로(/)를 사용하지만, Qt 4.x의 Makefile은 윈도우 방식(\)으로 생성되는 경우가 많아 파일이나 디렉터리를 찾지 못하는 에러가 발생합니다.
  • 증상: main.cpp를 찾을 수 없다는 에러나 del 명령 실행 실패 등이 대표적인 증상입니다.

2. 해결 방법: SHELL=cmd.exe 적용

make 명령을 실행할 때 윈도우 표준 명령 프롬프트를 강제로 사용하도록 지정하는 방법입니다.

방법 A: Qt Creator 빌드 설정에서 추가 (권장)

  1. Qt Creator 좌측 메뉴에서 Projects를 클릭합니다.
  2. Build Settings 탭의 Build Steps 항목을 찾습니다.
  3. make 혹은 mingw32-make 단계의 Make arguments 입력창에 다음을 입력합니다.
  4. SHELL=cmd.exe
  5. 이미 다른 인자가 있다면 공백으로 구분하여 추가합니다 (예: -j4 SHELL=cmd.exe).

방법 B: qmake 인자로 전달

.pro 파일 자체에 선언하거나 qmake 실행 시 인자로 넘길 수도 있습니다.

  • qmake 실행 시: qmake.exe project.pro -spec win32-g++ "QMAKE_MAKE=mingw32-make SHELL=cmd.exe"

3. 다른 해결책: Git PATH 순서 조정

만약 위 설정으로도 해결되지 않는다면, 환경변수 설정을 확인해 보세요.

  • Git 경로 분리: C:\Program Files\Git\bin 폴더에는 sh.exe가 포함되어 있습니다. 대신 C:\Program Files\Git\cmd 경로만 PATH에 남겨두면, git 명령은 동작하면서도 sh.exe는 호출되지 않아 충돌을 피할 수 있습니다.
  • 우선순위 변경: Qt 관련 도구(MinGW\bin)의 경로를 Git 경로보다 상단에 위치시키면 make가 자신의 환경에 맞는 도구를 먼저 찾게 됩니다.
LIST