Linux
配置 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 文件會放在包含目錄中,我不知道 *.lo 或 *.o 文件會放在哪裡。我將如何在配置命令中指定這些選項?如果有人能告訴我如何糾正這種情況,我將不勝感激?
您的配置對我來說似乎沒問題(您通常只需覆蓋 中的合理預設值
./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
都複製到目標位置是正常的install