외부 라이브러리 생성으로 프로젝트에 링크하는 방법
1.
프로젝트 상위 디렉토리에 app 폴더 생성
•
CMakeLists.txt파일 생성
•
하위 Inc, Src 디렉토리 및 관련 파일 생성
2.
cmakelists파일에 내용 추가
# App 모듈을 위한 CMake 파일
add_library(app STATIC
Src/app.c
)
target_include_directories(app PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/Inc
)
# 필요한 경우 STM32 HAL 라이브러리에 대한 의존성 추가
target_link_libraries(app
stm32cubemx
)
JavaScript
복사
3.
main CMakeLists.txt 파일 수정
# App module 추가
add_subdirectory(App)
JavaScript
복사
App 디렉토리 내 새 소스 파일 추가 시
App 디렉토리 내에 새로운 소스 파일(예: led_control.c, uart_handler.c 등)을 추가할 경우:
1.
App/CMakeLists.txt 수정:
# 기존 코드
add_library(app STATIC
Src/app.c
# 새로운 소스 파일 추가
Src/led_control.c
Src/uart_handler.c
)
JavaScript
복사
1.
메인 CMakeLists.txt는 수정 필요 없음: App 라이브러리를 이미 참조하고 있으므로 자동으로 새 소스 파일들이 포함됩니다.
새로운 모듈(디렉토리) 추가 시
완전히 새로운 모듈(예: Drivers, Utils 등)을 추가하는 경우:
1.
새 모듈 디렉토리에 CMakeLists.txt 생성:
add_library(utils STATIC
Src/utils.c
Src/debug.c
)
target_include_directories(utils PUBLIC Inc)
JavaScript
복사
1.
메인 CMakeLists.txt 수정:
# 기존 코드
add_subdirectory(App)
# 새 모듈 추가
add_subdirectory(Utils)
# 링크 부분 수정
target_link_libraries(${PROJECT_NAME}
app
utils# 새 라이브러리 추가
)
JavaScript
복사
이렇게 하면 프로젝트가 확장되어도 모듈화된 구조를 유지하면서 새로운 기능을 추가할 수 있습니다.