C ++ preprocessor "/ lib / cpp" gagal memeriksa kewarasan

21

Saya perlu mengkompilasi HDF5, dan setelah proses konfigurasi, saya menerima kesalahan ini:

configure: error: C++ preprocessor "/lib/cpp" fails sanity check

Dan saya tahu saya telah cppmenginstal di Windows sayaubuntu

Setiap bantuan akan sangat dihargai :) Ini adalah output dari dpkg --list | grep compiler

ii  gcc                                                        4:4.8.2-1ubuntu6                                    amd64        GNU C compiler
ii  gcc-4.8                                               4.8.2-19ubuntu1                                     amd64        GNU C compiler
ii  gfortran                                              4:4.8.2-1ubuntu6                                    amd64        GNU Fortran 95 compiler
ii  gfortran-4.8                                          4.8.2-19ubuntu1                                     amd64        GNU Fortran compiler
ii  hardening-includes                                    2.5ubuntu2                                          all          Makefile for enabling compiler flags for security hardening
ii  libllvm3.4:amd64                                      1:3.4-1ubuntu3                                      amd64        Modular compiler and toolchain technologies, runtime library
ii  libxkbcommon0:amd64                                   0.4.1-0ubuntu1                                      amd64        library interface to the XKB compiler

Dan ini adalah kesalahan yang saya terima:

  nazanin@barashka:~/hdf5-1.8.13$ ./configure --with-zlib=/home/nazanin/local    --prefix=/home/nazanin/local
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking shell variables initial values... done
checking if basename works... yes
checking if xargs works... yes
checking for cached host... none
checking for config x86_64-unknown-linux-gnu... no
checking for config x86_64-unknown-linux-gnu... no
checking for config unknown-linux-gnu... no
checking for config unknown-linux-gnu... no
checking for config x86_64-linux-gnu... no
checking for config x86_64-linux-gnu... no
checking for config x86_64-unknown... no
checking for config linux-gnu... found
compiler 'gcc' is GNU gcc-4.8.2
checking for config ./config/site-specific/host-barashka... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking if unsupported combinations of configure options are allowed... no
checking if Fortran interface enabled... no
checking if Fortran 2003 interface enabled... yes
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/home/nazanin/hdf5-1.8.13':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details

Apakah saya harus menyalin config.log di sini? Terima kasih

nazanin
sumber
Tolong tunjukkan beberapa baris di atas dan di bawah!
Volker Siegel
Anda bisa hasilkan dpkg --list | grep compiler?
AlexGreg

Jawaban:

24

Jika hasil konfigurasi Anda terlihat serupa, kompiler C ++ tidak ada:

[ ... ]
*** C++ compiler and preprocessor
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/home/ubuntu/.local/share/Trash/files/openmpi-1.4.1':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.


Untuk menginstal kompiler GNU C ++, gunakan
apt-get install g++


Output configure menunjukkan bahwa ./configure mencoba menemukan kompiler C ++ dengan memeriksa banyak nama kompiler yang dikenal, satu per satu.
Pada awalnya, kita melihat ada yang g++hilang - yang lebih disukai, diperiksa terlebih dahulu.
Tapi itu terus mencoba menemukan beberapa kompiler lain yang mungkin Anda suka gunakan.

Volker Siegel
sumber
21

Saya mendapatkan jenis kesalahan yang serupa selama instalasi protobuf-2.5.0 pada centos 7, untuk ini saya harus menginstal gcc-c ++ dengan perintah -

 yum install gcc-c++
naveen dahiya
sumber
2
yumadalah manajer paket distribusi Linux yang berbeda di luar topik di sini. Ubuntu menggunakan Apt.
David Foerster
11
Saya hanya akan membuat teriakan bahwa google membawa saya ke sini dan jawabannya masih membantu.
Shadoninja
3
Terima kasih atas jawaban ini, meskipun secara teknis di luar topik. Bantu aku keluar.
Ed Daniel
2
Terima kasih. Ini menyelamatkan saya menginstal PHP 7.0 pada Mesin Linux Amazon.
Marcos Regis
2

Solusi saya adalah membuat symlink di / lib / cpp yang menunjuk ke gcc.

ln -sv "$(which gcc)" /lib/cpp

sajattack
sumber
1

menempatkan ini di lingkungan Anda mungkin melakukan trik:

GCC_PATH=#add the root directory to the gcc installation
export CPPFLAGS=-I$GCC_PATH/include/c++/5.3.0:$CPPFLAGS

Jika berhasil, ini berarti ada konflik perpustakaan antara versi gcc yang ingin Anda gunakan dan versi gcc yang ingin dimasukkan.

bhelgs
sumber