-
[Python] Cannot Split, A bytes-like object is required, not ‘str’
Python에서 split method를 사용하던 중 다음과 같은 error가 발생했다. Traceback (most recent call last): File "main.py", line 7, in doSplit() File "main.py", line 3, in doSplit my_str.split(" ") TypeError: a bytes-like object is…
-
[Python] 다른 Python Source의 모듈 가져오기
Python을 사용하다보면 PYTHONPATH에 있는 package가 아닌 다른 python source의 module을 가져와서 사용하는 경우가 종종 있다. 위 기능을 지원하는 패키지를 통해 동작을 구현해보려고 한다.참고로 Python version별로 사용 방법이 다르기 때문에 유의해야하며, 이 글은 Python…
-
[Linux] GDB Variable 출력 형태 바꾸기 / C++ STL Print
GDB Variable Print Format 변경 GDB를 통해 debugging을 진행하다보면 변수를 출력하는 경우가 많다. 이 때 좀 더 눈에 읽히기 쉽도록 형태를 바꾸는 방법이 존재한다. Home 경로에 .gdbinit 파일에 설정을 해두면 된다. 설정하게되면 다음…
-
CMake Pre-defined Variables
CMake에는 미리 정의된 변수들이 존재한다. 이번 포스팅에선 대표적으로 사용되는 변수를 소개한다. CMAKE_COMMAND cmake 명령어 자체를 수행하고자 할 때 사용한다. 따라서 해당 변수 ${CMAKE_COMMAND}에는 cmake binary 위치가 저장된다. 아래와 같이 사용이 될 수 있다.…
-
CMake 명령어
CMake를 사용할 때는 CMakeLists.txt에 다양한 명령어를 함수처럼 호출해서 사용한다. 이번 글에서 각 명령어들에 대해 소개하도록 한다. cmake_minimum_required 최소로 요구되는 CMake version을 명시한다. project 해당 project의 필수 정보들을 입력한다. 이 명령은 CMake 수행에 반드시…
-
CMake 사용법
What is CMake? CMake란 cross-platform build system으로 우리가 일반적으로 많이 이용하는 Make에서 확장된 프로그램이다. 어떤 platform을 target으로 사용되는 Make와 다르게 다양한 platform에서도 동작 할 수 있는 build system을 CMake를 통해 이용 가능하다. 위…
-
[Linux] Executable의 RPATH 확인
Linux에서 executable은 elf format으로 구성되는데, 내부에는 rpath entry라는게 존재한다. 참고로 rpath는 shared library를 이용하는 build된 binary에서 dynamic loading 시 어떤 위치에 shared library가 존재하는지 가리키는 entry다. Runtime 시 shared library를 참조하는 순서는 다음과…
-
[Linux] Bash set 명령어
Bash shell에서 set 명령어는 스크립트에서 자주 사용되는 명령어다. 이번 글에서 주요한 옵션에 대해서 설명해본다. -e -e 옵션은 bash shell에서 각 명령어를 수행하고 난 뒤에 error가 발생해 return value가 0이 아닌 다른 값이면 뒤따르는…
-
[Git] Github Action Workflow 작성법
Github Action의 workflow 파일 작성을 통해 각 workflow 동작을 기술해준다. 각 파일의 구조는 크게 다음과 같이 나타낼 수 있다. name .github/workflows/XXX.yml 파일에 가장 먼저 기술되는 부분은 workflow의 이름이다. 필수 key는 아니기에 만약 설정해주지…
-
[Git] Github Action 사용법
Github에선 workflow를 자동화 할 수 있는 기능을 제공한다. 대표적인 workflow 자동화 프로그램으로는 Jenkins가 있는데 간단한 업무를 Github에서 제공하는 Action으로 어느정도 대체가 가능하다. 대신 위 기능은 각 repository 별 최대 등록 가능한 workflow 개수가…