要在Ubuntu 14.04下进行C/C++的编译的事情,就需要先准备一个C/C++的编译环境,简单的办法就是:
apt-get install build-essential
下面就要进行我们的正题了,编译snappy。那snappy的源码可以在哪里找到呢,就在github上
git clone https://github.com/google/snappy.git
当git clone这步完成后,将目录切换到snappy下,就要开始我们编译snappy的过程了:
运行autogen.sh
./autogen.sh
在运行autogen.sh的过程中,可能会出现下面的一些报错信息:
错误信息:
./autogen.sh: 3: ./autogen.sh: aclocal: not found
解决办法,需要安装automake
apt-get install automake
错误信息:
./autogen.sh: 5: ./autogen.sh: libtoolize: not found
解决办法,需要安装libtool
apt-get install libtool
错误信息:
configure.ac:42: error: possibly undefined macro: AC_DEFINE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:44: error: possibly undefined macro: AC_MSG_FAILURE
解决办法,需要安装pkg-config
apt-get install pkg-config
运行configure
./configure
在这个环节,没有遇到任何障碍,顺利完成
运行make
make
运行make install
make install
最后,编译过程就顺利完成了
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/bin/mkdir -p '/usr/local/share/doc/snappy'
/usr/bin/install -c -m 644 ChangeLog COPYING INSTALL NEWS README format_description.txt framing_format.txt '/usr/local/share/doc/snappy'
/bin/mkdir -p '/usr/local/include'
/usr/bin/install -c -m 644 snappy.h snappy-sinksource.h snappy-stubs-public.h snappy-c.h '/usr/local/include'