nominatim错误,nominatim.o错误

时间:2015-08-27 12:09:53

标签: ubuntu nominatim

我尝试在Ubuntu 14.04 LTS(天蓝色)上安装Nominatim,我安装了所有需要的软件包。

当我运行Nominatim(./configurate& make)时,他写错了:

/bin/bash ./libtool  --tag=CXX   --mode=link g++  -g -O2   -o osm2pgsql osm2pgsql.o  libosm2pgsql.la -pthread -L/usr/lib -lz -L/usr/lib/x86_64-linux-gnu -lpq -lxml2 -L/usr/lib -lbz2 -L/usr/lib -L/usr/lib -lgeos-3.4.2 -L/usr/lib -lproj -L/usr/lib -lprotobuf-c -L/usr/lib/x86_64-linux-gnu -llua5.2  -lm -ldl -L/usr/lib/x86_64-linux-gnu -lboost_filesystem -lboost_system -lboost_thread 
libtool: link: g++ -g -O2 -o osm2pgsql osm2pgsql.o -pthread  ./.libs/libosm2pgsql.a -L/usr/lib -lz -L/usr/lib/x86_64-linux-gnu -lpq -lxml2 -lbz2 -lgeos-3.4.2 /usr/lib/libproj.so -lprotobuf-c -llua5.2 -lm -ldl -lboost_filesystem -lboost_system -lboost_thread -pthread
depbase=`echo node-persistent-cache-reader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    g++ -DHAVE_CONFIG_H -I.  -pthread -I/usr/include/postgresql -I/usr/include/libxml2 -I/usr/include -I/usr/include -I/usr/include -DOSM2PGSQL_DATADIR='"/usr/local/share/osm2pgsql"' -Igeos-fallback -I/usr/include/lua5.2 -I/usr/include   -g -O2 -MT node-persistent-cache-reader.o -MD -MP -MF $depbase.Tpo -c -o node-persistent-cache-reader.o node-persistent-cache-reader.cpp &&\
    mv -f $depbase.Tpo $depbase.Po
/bin/bash ./libtool  --tag=CXX   --mode=link g++  -g -O2   -o nodecachefilereader node-persistent-cache-reader.o libosm2pgsql.la -pthread -L/usr/lib -lz -L/usr/lib/x86_64-linux-gnu -lpq -lxml2 -L/usr/lib -lbz2 -L/usr/lib -L/usr/lib -lgeos-3.4.2 -L/usr/lib -lproj -L/usr/lib -lprotobuf-c -L/usr/lib/x86_64-linux-gnu -llua5.2  -lm -ldl -L/usr/lib/x86_64-linux-gnu -lboost_filesystem -lboost_system -lboost_thread 
libtool: link: g++ -g -O2 -o nodecachefilereader node-persistent-cache-reader.o -pthread  ./.libs/libosm2pgsql.a -L/usr/lib -lz -L/usr/lib/x86_64-linux-gnu -lpq -lxml2 -lbz2 -lgeos-3.4.2 /usr/lib/libproj.so -lprotobuf-c -llua5.2 -lm -ldl -lboost_filesystem -lboost_system -lboost_thread -pthread
make[2]: Leaving directory `/app/nominatim/osm2pgsql'
make[1]: Leaving directory `/app/nominatim/osm2pgsql'
Making all in module
make[1]: Entering directory `/app/nominatim/module'
Makefile:10: warning: overriding commands for target `install'
/usr/lib/postgresql/9.4/lib/pgxs/src/makefiles/pgxs.mk:128: warning: ignoring old commands for target `install'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie -DLINUX_OOM_SCORE_ADJ=0 -fno-omit-frame-pointer -fpic -I. -I./ -I/usr/include/postgresql/9.4/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.6  -c -o nominatim.o nominatim.c
gcc: error: unrecognized command line option ‘-fstack-protector-strong’
make[1]: *** [nominatim.o]
 Error 1
    make[1]: Leaving directory `/app/nominatim/module'
    make: *** [all-recursive] Error 1

我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:0)

错误是使用命令行选项-fstack-protector-strong,小于 gcc 版本4.9的版本不支持。

因此,您需要安装 gcc 版本4.9或更高版本,它支持-fstack-protector-strong并使用以下命令将其设置为默认gcc:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9