我安排了一个脚本来下载依赖项源、设置环境变量并运行
cmake
最后一行。只需更改DEPDIR变量值,将其设置为所选目录。
#!/bin/bash
CMKDIR=$PWD
DEPDIR=/tmp
cd $DEPDIR
#snappy
git clone https://github.com/google/snappy.git
cd snappy
mkdir build
cd build
cmake ..
make
export SNAPPY_STATIC_LIB=$DEPDIR/snappy/build/libsnappy.a
cd $DEPDIR
#brotli
git clone https://github.com/google/brotli.git
cd brotli
mkdir out
cd out
../configure-cmake
make
export BROTLI_STATIC_LIB_ENC=$DEPDIR/brotli/out/libbrotlienc-static.a
export BROTLI_STATIC_LIB_DEC=$DEPDIR/brotli/out/libbrotlidec-static.a
export BROTLI_STATIC_LIB_COMMON=$DEPDIR/brotli/out/libbrotlicommon-static.a
cd $DEPDIR
#zlib
git clone https://github.com/madler/zlib.git
cd zlib
./configure
make
export ZLIB_STATIC_LIB=$DEPDIR/zlib/libz.a
cd $DEPDIR
#lz4
git clone https://github.com/lz4/lz4.git
cd lz4
make
export LZ4_STATIC_LIB=$DEPDIR/lz4/lib/liblz4.a
cd $DEPDIR
#zstd
git clone https://github.com/facebook/zstd.git
cd zstd
make
export ZSTD_STATIC_LIB=$DEPDIR/zstd/lib/libzstd.a
cd $CMKDIR
cmake -DPARQUET_BUILD_TESTS=Off -DCMAKE_BUILD_TYPE=Release -DPARQUET_MINIMAL_DEPENDENCY=ON -DPARQUET_ARROW_LINKAGE=static
这个脚本非常简单,但应该是有效的。只需将其复制到一个新文件中(在同一个CMakeLists.txt目录中),为该文件提供执行权限(即。
sudo chmod +x filename
)然后像这样执行:
./filename.sh
关于
fPIC期权发行
,您必须编辑一些文件:
精炼的
:在CmakeList中添加此行。txt,开头,在前两行之后:
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
lz4型
和
zstd公司
:编辑lib子目录中的Makefile,位于此行之后
CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
添加此行:
CFLAGS += -fPIC
兹利布
:编辑生成文件,在此行之后
CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN
添加此行:
CFLAGS+=-fPIC
布罗特利
:从make output中可以看到,该选项已设置。
再次运行make之前,请执行以下脚本:
#!/bin/bash
DEPDIR=/tmp
cd $DEPDIR/snappy/build
cmake ..
make clean
make
cd $DEPDIR/lz4
make clean
make
cd $DEPDIR/zstd
make clean
make