.a 및 .so 파일이란?
현재 AIX에 C 어플리케이션을 포팅하려고 하는데 혼란스럽습니다..a 및 .so 파일은 무엇입니까?또, 애플리케이션을 빌드/실행할 때는 어떻게 사용합니까?
아카이브 라이브러리(.a)는 정적으로 링크되어 있습니다.즉, gcc의 -c 옵션을 사용하여 프로그램을 컴파일 할 때 사용합니다.따라서 라이브러리에서 변경 사항이 있으면 코드를 다시 컴파일하여 빌드해야 합니다.
.so(공유 객체)가 .cc에 .o file -o 옵션을 작성한 후에 .so(공유 객체)가 런타임 중에 링크된다는 장점이 있습니다.따라서 .so 파일에 변경이 있으면 메인 프로그램을 다시 컴파일할 필요가 없습니다.단, 메인 프로그램이 ln 명령어로 새로운 .so 파일에 링크되어 있는지 확인하십시오.
이렇게 하면 .so 파일을 빌드하는 데 도움이 됩니다.http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
.a는 정적 라이브러리입니다.그 안에 저장된 코드를 사용하면 그 코드를 가져와 자신의 바이너리에 삽입할 수 있습니다.Visual Studio에서는 .lib 파일입니다.
동적 라이브러리도 마찬가지입니다.그 안에 저장되어 있는 코드를 사용하면, 그 코드는 취득되지 않고, 자신의 바이너리에 짜넣어지지 않습니다.대신 참조만 되어 있기 때문에 바이너리는 이들 코드에 의존하며 실행 시 파일이 추가/로드됩니다.Visual Studio/Windows에서는 링크 정보가 포함된 작은 .lib 파일이 .dll 파일입니다.
.a 파일은 일반적으로 정적으로 링크(또는 보다 정확하게 아카이브)되는 라이브러리입니다.
.so는 동적으로 링크된 라이브러리입니다.
포트를 사용하려면 포트를 만들기 위해 컴파일된 소스 코드 또는 AIX 머신에 동등한 파일이 필요합니다.
그것들은 연결 단계에서 사용됩니다. .a
파일은 정적으로 링크되어 있습니다..so
파일은 링크되어 있기 때문에 exe를 실행할 때마다 라이브러리가 필요합니다.
lib 디렉토리 중 하나를 보면 저장 위치를 찾을 수 있습니다. /usr/lib
그리고./lib
대부분 가지고 있고, 또한LIBRARY_PATH
환경 변수입니다.
위키피디아는 이 정보의 적절한 출처이다.
.a와 같은 정적 라이브러리 파일에 대한 자세한 내용은 정적 라이브러리를 참조하십시오.
.so 등의 공유 라이브러리 파일에 대한 자세한 내용은 라이브러리_(컴퓨팅)를 참조하십시오.#Shared_libraries 이 페이지에는 파일 이름 지정 섹션에도 유용한 정보가 있습니다.
언급URL : https://stackoverflow.com/questions/9809213/what-are-a-and-so-files
'IT이야기' 카테고리의 다른 글
-fPIC 컴파일러 옵션을 추가하는 CMAKE의 관용적인 방법은 무엇입니까? (0) | 2022.06.22 |
---|---|
vue js 2 테이블 정렬 (0) | 2022.06.22 |
Meteor + Vue + Typescript 프로젝트에 ESLint 추가 (0) | 2022.06.22 |
런타임에 Java 주석 검색 (0) | 2022.06.22 |
코드가 테일콜 최적화를 적극적으로 막으려고 하는 이유는 무엇입니까? (0) | 2022.06.21 |