반응형
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에서 설정된 경로가 다르면, 프로젝트 빌드 및 실행 시 문제가 발생할 수 있습니다.
❌ 발생 가능한 문제
- 빌드 오류 발생
- .uvprojx에서 정의한 경로와 .uvoptx에서 기억하는 경로가 다르면, Keil이 소스 파일을 찾지 못함
- #1965: cannot open source input file "drivers/stm32f4xx_hal.h": No such file or directory 같은 오류 발생
- 디버깅 브레이크포인트 인식 불가
- .uvoptx에 저장된 디버깅 정보가 .uvprojx와 다른 경로를 참조하면, 브레이크포인트가 활성화되지 않음
- "Breakpoint at main.c:45 cannot be resolved." 오류 메시지가 출력됨
- 최근 파일 목록 로드 오류
- .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 확인
- Project → Options for Target → C/C++ 탭 이동
- Include Paths에 올바른 경로가 설정되어 있는지 확인
- 수정 후 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에서 관리하지 않도록 설정
반응형
'코딩취미 > 프로그램 지식' 카테고리의 다른 글
Latest Version vs LTS Version의 차이점 및 사용 비용 (0) | 2025.03.07 |
---|---|
#if ! 과 #ifndef 에 대한 가이드 (0) | 2025.03.02 |
GUI에 ISO 26262를 적용할 때 참고할 내용 (0) | 2024.08.22 |
무료 아이콘과 무료 폰트 사이트 : goole fonts 사용하기 (0) | 2024.08.12 |
구글 무료이미지를 사용한 이미지 변환(SVG to PNG, Resize) 사이트 정리 (0) | 2024.08.12 |