아닌 밤중에 C++ 다루기


Blog Development C++

즐거운 C++ 개발

얼마 전에 VS Code와 Neovim에 C++ 환경을 설정했는데,
얼마 지나지 않아 이걸 쓸 일이 생겨버렸다.

진짜 이런 류로 뭐 만들어보는 건 처음인지라 헤매기도 했는데 어떻게든 만들면서 느낀 점들을 써보고자 한다.

나 혼자 모든 코드를 짤 순 없다

이번에 대충 500줄 넘어가는 코드를 짜면서 절감한 부분이다.
그렇기에, 할 수 있는 부분은 이미 보장이 된 패키지들을 이용하기로 했다.

필요했던 패키지는 Luarapidjson. 둘 다 MSYS를 이용해 설치했다.

image

image

여튼 패키지가 있긴 있어서 다행인데,
…Windows라 엄청 꼽다.

어쨌든 Lua와 JSON을 끼얹으니 그런대로 내가 원하던 결과물을 낼 수 있었다.

어찌저찌 만들긴 했는데…

문제는 빌드에 있었다.. CMake로 최대한 플랫폼 종속성 없게 빌드하려고 했으나,
처음엔 Lua 패키지를 제대로 찾지 못하는 일이 발생…

결국 서브모듈로 Lua를 임베드하고서야 독립된 .exe만으로 돌아가게 되었다.
그런다고 CMake와 한참을 싸웠지만.

최종적으론 다음과 같이 CMakeLists.txt를 작성했다.

cmake_minimum_required(VERSION 3.26)
add_executable (ShortSwordSlicer "ShortSwordSlicer.cpp" "ConcatenatedHeader.h" "sss.o")

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} CACHE STRING "" )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} CACHE STRING "" )

project("ShortSwordSlicer")
add_subdirectory(external/lua)
target_link_libraries(ShortSwordSlicer PRIVATE lua::lib)
set(CMAKE_EXE_LINKER_FLAGS "-static -Wl,--stack,536870912")
set(CMAKE_BUILD_TYPE Release)

여기까지 오는 데 고생을 꽤나 했다.

영향성

일단 이번 걸 만들게 되면서, 더 이상 이전에 만들었던 ModPacker는 크게 의미가 없게 되었다.
아마 조만간 재배포를 할 수 있을 듯 하다.

그 외에, VS Code 확장개발이라던지 더 신경써야 할 게 는 듯. 미래의 내가 어떻게든 해주겠지.

© 2024 SeokguKim   •  Base Theme  Moonwalk