Pigz의 Windows 이식: 놀랍도록 매끄러운 크로스 플랫폼 여정

2025-06-23
Pigz의 Windows 이식: 놀랍도록 매끄러운 크로스 플랫폼 여정

Unix 스타일 압축 도구인 Pigz의 Windows 이식은 놀랍도록 쉬웠습니다. 이 기사에서는 pthreads 스레드 라이브러리와 dirent 함수의 차이점, C 라이브러리 함수 이름의 사소한 차이점 등 발생한 과제에 대해 자세히 설명합니다. 저자는 기존의 호환성 패치와 Premake 빌드 시스템을 효과적으로 활용하여 이러한 문제를 해결했습니다. Premake를 사용하면 Visual Studio 프로젝트 파일의 생성 및 유지 관리가 간소화되어 최종적으로 Windows에서 Pigz를 성공적으로 구현할 수 있었습니다.

더 보기
개발

SumatraPDF 개발자, 16년 만에 std::function 포기하고 자체 콜백 함수 제작

2025-06-15
SumatraPDF 개발자, 16년 만에 std::function 포기하고 자체 콜백 함수 제작

SumatraPDF 개발자는 16년간의 C++ 개발 경험을 바탕으로 디버깅의 어려움 때문에 std::function과 람다 표현식을 포기했습니다. 컴파일러가 자동으로 생성하는 람다 함수의 이름이 모호하여 크래시 보고서 분석이 어려웠기 때문입니다. 그래서 더 간단하고 이해하기 쉬운 사용자 정의 콜백 함수 Func0과 Func1을 만들었습니다. std::function만큼 기능이 풍부하지는 않지만 메모리 사용량과 컴파일 속도 면에서 큰 장점이 있으며 디버깅도 용이합니다. 이 글에서는 Func0과 Func1의 설계 및 구현 세부 정보와 이러한 접근 방식이 SumatraPDF에 적합한 이유를 설명합니다.

더 보기
개발 콜백 함수