컴파일 및 설치를 위해 zlib 구성

컴파일 및 설치를 위해 zlib 구성

"/root/tmp/zlib-1.2.8/" 내에서 zlib-1.2.8을 설치하려고 하는데 구성 옵션이 불완전한 것 같습니다. 내가 사용하는 구성 명령은 다음과 같습니다.

./configure --prefix=/usr2/lib2 --eprefix=/usr2/lib2

컴파일 전 "/usr2/lib2/" 디렉터리는 비어 있으므로 "/root/tmp/zlib-1.2.8/"의 내용과 쉽게 비교할 수 있습니다. ~ 후에

make install

명령을 실행한 후 "/root/tmp/zlib-1.2.8/" 디렉터리에 *.o, *.lo, *.h 및 *.c 파일이 많이 있음을 확인했습니다. 이러한 파일은 존재하지 않습니다. 대상 디렉터리 "/"usr2/lib2/" 아래의 모든 디렉터리. 이로 인해 구성 사양이 불완전한 것처럼 느껴집니다. 나는 *.c 파일이 src 디렉토리에 배치될 것이라고 믿고, *.h 파일은 include 디렉토리에 배치될 것이라고 믿습니다. *.lo 또는 *.o 파일이 어디에 배치될지는 모르겠습니다. 구성 명령에서 이러한 옵션을 어떻게 지정합니까? 누군가 이 상황을 해결하는 방법을 말해 줄 수 있다면 매우 감사하겠습니다.

답변1

귀하의 구성은 제가 보기에는 괜찮은 것 같습니다(대개는 overrides에 적절한 기본값만 원함 ./configure). 일반적으로 빌드 단계( make)를 포함합니다. FAQ다운로드한 1.2.8 아카이브에 포함된 파일 에서 :

13. How can I make a Unix shared library?

    By default a shared (and a static) library is built for Unix.  So:

    make distclean
    ./configure
    make

14. How do I install a shared zlib library on Unix?

    After the above, then:

    make install

make13번 항목의 마지막 단계입니다.

결과 디렉터리에는 소스 파일이 포함되어 있지 않지만(그렇지도 않아야 함) 헤더는 포함되어 있습니다(다른 프로그램을 컴파일하는 데 필요함 zlib).

.
├── include
│   ├── zconf.h
│   └── zlib.h
├── lib
│   ├── libz.a
│   ├── libz.so -> libz.so.1.2.8
│   ├── libz.so.1 -> libz.so.1.2.8
│   ├── libz.so.1.2.8
│   └── pkgconfig
│       └── zlib.pc
└── share
    └── man
        └── man3
            └── zlib.3

makemake 중에 단계의 모든 결과가 대상에 복사되지는 않습니다. 이는 정상입니다.install

관련 정보