본문 바로가기
코딩취미/프로그램 지식

Keil µVision 프로젝트 파일 .uvprojx와 .uvoptx 정리

by 브링블링 2025. 3. 1.
반응형

Keil µVision 프로젝트 파일 .uvprojx와 .uvoptx 정리

임베디드 개발을 할 때 Keil µVision을 많이 사용하죠? 하지만 프로젝트를 관리하다 보면 .uvprojx와 .uvoptx라는 파일이 존재하는데, 이 두 파일의 차이를 헷갈려하는 경우가 많습니다. 이 글에서는 .uvprojx와 .uvoptx의 차이점, 역할, 사용 시점, 그리고 발생할 수 있는 문제와 해결 방법까지 정리해보겠습니다.

1. .uvprojx vs .uvoptx 차이점 정리

Keil µVision에서 프로젝트를 생성하면 .uvprojx와 .uvoptx라는 두 개의 주요 파일이 자동으로 생성됩니다. 각각의 역할을 한눈에 정리해볼까요?

파일명 역할 공유 필요 여부 삭제 가능 여부 Git 관리 여부
.uvprojx 프로젝트의 주요 설정 및 소스 코드 정보 저장 ✅ 공유 필요 ❌ 삭제하면 프로젝트 손상 ✅ Git에 포함
.uvoptx 개발자의 개인 환경 설정 저장 (편집기, 디버거 등) ❌ 공유 불필요 ✅ 삭제해도 자동 재생성 ❌ .gitignore에 추가

 

📌 요약

  • .uvprojx → 프로젝트의 구성 및 빌드 정보 저장 (팀원과 공유해야 함)
  • .uvoptx → 개발자의 개인 환경 설정 저장 (공유할 필요 없음)

2. .uvoptx는 언제 사용될까?

.uvoptx 파일은 Keil µVision을 실행할 때 자동으로 사용되며, 사용자의 개발 환경을 저장합니다.

 

사용 시점

  • 프로젝트를 열면 최근 사용한 파일 목록, 창 배치, 에디터 설정이 복원됨
  • 디버깅할 때 Breakpoints(중단점), Watchlist 등의 정보가 유지됨
  • Keil을 종료하면 현재 환경이 .uvoptx 파일에 자동 저장됨
  • 다음에 프로젝트를 열면 .uvoptx가 로드되어 동일한 환경을 유지

🛠 개발 중 .uvoptx 문제 발생 시 해결 방법

  • .uvoptx 파일을 삭제하고 Keil을 다시 실행하면 초기 설정으로 복원
  • .uvprojx에는 영향을 주지 않으므로 안심하고 삭제 가능

반응형

3. .uvprojx와 .uvoptx의 경로가 다르면 발생하는 문제

.uvprojx와 .uvoptx에서 설정된 경로가 다르면, 프로젝트 빌드 및 실행 시 문제가 발생할 수 있습니다.

발생 가능한 문제

  1. 빌드 오류 발생
    • .uvprojx에서 정의한 경로와 .uvoptx에서 기억하는 경로가 다르면, Keil이 소스 파일을 찾지 못함
    • #1965: cannot open source input file "drivers/stm32f4xx_hal.h": No such file or directory 같은 오류 발생
  2. 디버깅 브레이크포인트 인식 불가
    • .uvoptx에 저장된 디버깅 정보가 .uvprojx와 다른 경로를 참조하면, 브레이크포인트가 활성화되지 않음
    • "Breakpoint at main.c:45 cannot be resolved." 오류 메시지가 출력됨
  3. 최근 파일 목록 로드 오류
    • .uvoptx에서 기억하는 경로와 다르면 최근 작업한 파일이 사라짐
    • Keil을 실행했을 때 "File not found" 경고가 표시될 수 있음

4. .uvoptx 문제 해결 방법

💡 프로젝트가 정상적으로 작동하지 않을 때, 아래 방법을 시도해보세요!

1. Keil 프로젝트 파일 경로 확인

  • Project → Manage → Project Items에서 프로젝트에 포함된 파일들의 경로를 확인
  • 만약 File Not Found 오류가 뜨면, 소스 코드의 올바른 경로를 설정

2. .uvoptx 삭제 후 Keil 다시 실행

  • .uvoptx는 개인 설정 파일이므로 삭제해도 프로젝트에는 영향 없음
  • 삭제 후 Keil을 실행하면 자동으로 초기 설정이 적용됨
rm *.uvoptx  # Linux/macOS
del *.uvoptx  # Windows (cmd)

3. .uvprojx 직접 확인 및 수정

.uvprojx는 XML 형식의 프로젝트 파일이므로, 텍스트 편집기로 열어 직접 확인할 수도 있습니다.
🔍 예제 (.uvprojx 파일의 일부)

<Files>
    <File>
        <FilePath>./src/main.c</FilePath>
    </File>
    <File>
        <FilePath>./drivers/stm32f4xx_hal.c</FilePath>
    </File>
</Files>

 

위와 같은 <FilePath>의 경로가 올바른지 확인하고 수정하면 해결될 수 있습니다.

4. Options for Target에서 Include Paths 확인

  1. Project → Options for Target → C/C++ 탭 이동
  2. Include Paths에 올바른 경로가 설정되어 있는지 확인
  3. 수정 후 OK 버튼 클릭 후 다시 빌드

5. .uvoptx를 Git에서 관리할까?

🛑 절대 Git에 포함하지 마세요!
.uvoptx는 개인 설정 파일이므로, Git에서 관리할 필요가 없습니다.

 

📌 .gitignore에 추가하기

# Keil 관련 불필요한 파일 무시
*.uvoptx
*.bak
*.dep
*.lst
*.crf
*.htm

 

이렇게 하면 팀원별로 다른 설정을 유지할 수 있어 불필요한 충돌을 방지할 수 있습니다.


6. 결론 (TL;DR)

  • .uvprojx → 프로젝트의 구성 및 빌드 정보 저장, 팀원과 공유해야 함
  • .uvoptx → 개인 설정 파일, Git에 올릴 필요 없음
  • .uvoptx를 삭제하면 초기 설정으로 복원 가능
  • .uvprojx와 .uvoptx의 경로가 다르면 빌드 및 디버깅 오류 발생 가능
  • .gitignore에 .uvoptx를 추가하여 Git에서 관리하지 않도록 설정
반응형