zlib無法在源代碼外模式下使用cmake進行編譯。如何使用cmake在out-of-source模式下構建zlib?
我在做什麼錯?
這裏的zlib的工作中源:
mkdir test
cd test
mkdir contrib
mkdir build
cp /tmp/zlib-1.2.8.tar.gz contrib
cd contrib
tar xvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
rm zconf.h
cmake .
make
這裏的zlib的失敗亂源:
mkdir test
cd test
mkdir contrib
mkdir build
cp /tmp/zlib-1.2.8.tar.gz contrib
cd contrib
tar xvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
rm zconf.h
cd ../../
echo -e cmake_minimum_required\(VERSION 2.6.4\)\\r\\n\
project\(MyTestApp\)\\r\\n\
\\r\\n\
add_subdirectory\(contrib/zlib-1.2.8\)\\r\\n\
> CMakeLists.txt
cd build
cmake ..
make
它失敗:
/home/blah/test/contrib/zlib-1.2.8/test/example.c:8:18: error: zlib.h: No such file or directory
注: 什麼時我在做?我正在尋求建立一個zlib的本地副本。我不想涉及系統zlib(我的項目涉及交叉編譯)。
我沒有在/ usr/include中安裝zlib.h。 (我卸載zlib-devel)當我確實安裝了zlib-devel軟件包(然後給我一個zlib的系統安裝,我不想),關於zlib.h的錯誤發生了變化,而不是無法找到zconf.h。
病理是一樣的。 example.c文件沒有找到正確的頭文件。你可以很清楚地知道這是從zlib附帶的CMakeLists.txt文件中發生的。構建zlib庫的部分本身提到了ZLIB_PUBLIC_HDRS,但構建該示例的部分沒有提及該變量。因此:它不是在本地尋找標題。 (我在這裏猜測)
什麼呢example.c看起來像?你在用'#include「zlib.h」'你在用'#include'嗎? –
niklasfi
example.c使用#include「zlib.h」(這是開箱即用的) – 010110110101