크로스 플랫폼 프로젝트 개발

lsh235·2024년 10월 8일
0

c++

목록 보기
3/4

계기

network 성능 측정 시뮬레이터를 개발하면서 Windows, Linux 환경에서 동시에 동작 가능한 코어 프로그램이 필요해서

사용한 것

  1. visual studio 2022 (디버깅)
  2. visual studio code (전체 프로젝트 확인)
  3. CMake GUI (CMakeLists.txt 검증)

프로젝트 구조

  • Server
    CMakeLists.txt
    CMakePresets.json
  • Client
    CMakeLists.txt
    CMakePresets.json
  • CommonLib(static library, example binary)
    CMakeLists.txt
    CMakePresets.json

개발 내용

  1. Visual studio 2022로 CMake 프로젝트를 생성하자
  • client, server, commonLib 각각 프로젝트를 생성
  • 하나의 CMakeLists.txt에서 관리하려고 했으나 Visual studio 2022로 디버깅을 하면서 진행하려고 하니 복잡해져서 각각의 프로젝트로 나누어서 관리
  1. static library를 생성하고 example 프로그램으로 테스트 해보자
  • commonLib의 하위에서 commonLib와 example 디렉토리로 나누어 진행
  • CMakePresets.json 설정 참고
  1. Server와 Client에서 라이브러리를 링크하고 테스트 진행 후 개발 시작

느낀점

Visual Studio로 사용하여 크로스 플랫폼 작성시 CMakePresets.json에 설정된 os환경에 따라 intelisense가 변하므로 작업하기가 수월하다.
다만, CMakePresets.json에 여러 옵션이 많은 것 같은데 CMake에서 제공하는 옵션이랑 Visual Studio에서 사용하는 옵션에 차이가 있는 것 같다.

헷갈리는 점

  • 라이브러리 링크스 inteli sense가 CMakePresets.json의 ADDITIONAL_INCLUDE_DIR의 위치에 따라 적용되는건지
  • 각 프로젝트의 CMakeLists.txt의 target_link_libraries를 기준으로 되는건지 애매함.
  • 근데 아마 후자일 가능성이 높다.

0개의 댓글