본문 바로가기

전체 글

(774)
빌드 방법 [리눅스 기준] [1. 개요]윈도우와 전체적인 맥락은 비슷 함./Configure '-Wl,-rpath,$(LIBRPATH)'# 혹은 Perl Configuremake 산출물libssl.alibcrypto.alibcrypto.so# => libcrypto.so.3libssl.so# => libssl.so.3[2. update]윈도우 설치와 같이, --prefix 와 --openssldir 을 명시하는 편이 좋음./Configure --prefix=$(pwd)/release --openssldir=$(pwd)/releasemakemake install# --prefix 와 --openssldir 에 명시한 곳에, 개발에 필요한 파일들이 위치하게 됨.
빌드 방법 [윈도우 기준] [1. 개요]빌드 환경윈도우 10Visual studio 2017 기준필요한 툴perlnasmnmakeclrcperl 은 아래 url 을 통해 다운 받도록 한다.https://strawberryperl.com/releases.htmlnasm 은 mingw 나 perl 다운 시 같이 받을 수 있다. 나머지 툴은 Visual studio 2017 설치 후,"vs 2017 용 x64 네이티브 도구 명령 프롬프트" 를 에서 동작을 확인하도록 한다.Visual studio 2015 나 2019 등을 사용하는 경우, 각 빌드에 맞는 프롬프트를 실행하도록 한다.해당 프롬프트에서 아래 작업을 진행하도록 한다. 소스코드를 아래 url 을 통해 다운 받은 후, 소스 디렉터리로 이동하도록 한다.https://github.c..
출력 버퍼 flush 에 대한 고찰 [1. 개요]애플리케이션을 실행하고, 그 로그를 출력하는 상황은 크게 아래와 같이 두가지가 있을 수 있다.콘솔 상에서 바로 확인자식 프로세스 등으로 실행 및 파이프로 연결하여 확인실행 한 애플리케이션이 로그 출력 후 출력 버퍼를 바로 flush 하지 않는다면 로그를 확인 하는 시점이 상당히 다르다는 것이다. 1번 방식은 라인 단위로 즉시 확인 할 수 있지만,2번 방식은 라인 단위로 즉시 확인 할 수 없다. 그 이유는콘솔은 라인 버퍼링 방식으로, 개행 문자를 만나는 즉시 출력 버퍼를 비운다.파이프, 리다이렉션 등은 풀 버퍼링 방식으로 출력 버퍼가 가득 차야 버퍼를 비운다.그래서, 2번 방식으로 자식 프로세스의 로그를 실시간으로 확인하여야 하는 경우가 문제가 된다.[2. 예시]아래 코드를 빌드 후, 아래와 ..