Programming Terminology, Build, Compile, Extension
extension descriptions
클라이언트-서버 아키텍처
Header Files (헤더 파일):
Header 파일은 개발자가 함수, 클래스 및 구조체를 정의하는 데 사용하는 파일입니다. 일반적으로 헤더 파일에는 함수 선언, 데이터 구조 정의 및 상수가 포함됩니다. 헤더 파일은 컴파일러에게 코드의 구조 및 인터페이스를 알려주는 역할을 합니다. 개발자가 함수를 호출하고 데이터 구조를 사용할 때 컴파일러는 해당 헤더 파일을 참조하여 코드를 올바르게 컴파일할 수 있습니다. 개발자는 헤더 파일을 포함하여 코드에 필요한 함수 및 데이터 구조를 정의합니다.
Library Directory (라이브러리 디렉토리):
라이브러리 디렉토리는 컴파일러 및 링커가 라이브러리 파일을 찾을 수 있는 위치입니다. 라이브러리 파일은 실행 중에 프로그램에 필요한 기능 및 모듈을 제공하는 바이너리 파일입니다. 컴파일러는 헤더 파일을 통해 함수 및 데이터 구조의 선언을 알고 있지만, 라이브러리 파일은 이러한 함수 및 데이터 구조의 구현을 포함합니다. 라이브러리 디렉토리에 라이브러리 파일이 포함되어 있으면 링커가 컴파일된 프로그램과 라이브러리 파일을 결합하여 실행 가능한 프로그램을 생성합니다.
DLL (Dynamic Link Library):
DLL은 “동적 연결 라이브러리”의 약자로, 실행 중에 프로그램에 로드되는 라이브러리입니다. DLL은 여러 프로그램에서 공유되고 재사용할 수 있는 함수 및 데이터를 제공하는 데 사용됩니다. 런타임 시에 프로그램이 필요한 DLL 파일을 로드하여 해당 DLL 파일에 포함된 함수 및 데이터를 사용할 수 있습니다. 라이브러리 디렉토리에 있는 DLL 파일을 실행 파일과 함께 제공하면 프로그램이 실행될 때 해당 DLL 파일을 로드하여 사용합니다.
요약하면, 헤더 파일은 함수 및 데이터 구조의 선언을 제공하고, 라이브러리 디렉토리는 라이브러리 파일을 포함하고, DLL은 라이브러리의 구현을 동적으로 로드하여 프로그램에서 사용합니다. 헤더 파일과 라이브러리 디렉토리는 컴파일 시간에 사용되며, DLL은 런타임 시간에 사용됩니다.
소스
컴파일러
vsvc
- .c, .cpp
gcc
- .c
gpp
- .cpp
nvcc
- .c, .cpp, .cu
빌드
.exe: 실행파일
- window
.obj: 오브젝트
.so: shared object
- python에서 ctypes로 불러와서 쓸 수 있다
- linux
.dll: 동적라이브러리
- python에서 ctypes로 불러와서 쓸 수 있다
- window