"/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
make
13번 항목의 마지막 단계입니다.
결과 디렉터리에는 소스 파일이 포함되어 있지 않지만(그렇지도 않아야 함) 헤더는 포함되어 있습니다(다른 프로그램을 컴파일하는 데 필요함 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
make
make 중에 단계의 모든 결과가 대상에 복사되지는 않습니다. 이는 정상입니다.install