Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7957 Discussions

catastrophic error - bits/c++config.h (icpc 19.0.1.144)

Benjamin_Karl_B_
Beginner
2,357 Views

Hi,

I am trying to compile a simple program with icpc version 19.0.1.144 (gcc version 8.2.0 compatibility) and I get the following error:

icpc -g -O2 -std=c++17 -I. -c main.cc -o main.o
In file included from main.cc(4):
/usr/include/c++/8/iostream(38): catastrophic error: cannot open source file "bits/c++config.h"
  #include <bits/c++config.h>
                                            ^

If I add the gcc8 include path "-I/usr/include/x86_64-linux-gnu/c++/8", I can compile the code. However, this seems like a bug (I shouldn't have to tell the compiler where it's headers are installed.)

I have also tried using gcc7, but get the same error, i.e.,

icpc -g -O2 -std=c++17 -gxx-name=/usr/bin/x86_64-linux-gnu-g++-7 -I. -c main.cc -o main.o
In file included from main.cc(4):
/usr/include/c++/7/iostream(38): catastrophic error: cannot open source file "bits/c++config.h"
  #include <bits/c++config.h>
                                            ^

I am running on Ubuntu 18.04:

Linux momoney 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

>>>>>> lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:    bionic

My g++ version is:

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8.2.0-1ubuntu2~18.04' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 8.2.0 (Ubuntu 8.2.0-1ubuntu2~18.04)

The test program that I am trying to compile is:

#include <iostream>

int main(int argc, char ** argv) {

  return 0;
} // main

0 Kudos
4 Replies
Viet_H_Intel
Moderator
2,357 Views

I am curious to know if g++ compiles on this system?

0 Kudos
Benjamin_Karl_B_
Beginner
2,357 Views

Yes, I can compile with g++ (7,8) and clang++ (5,6) without any issues.

0 Kudos
Viet_H_Intel
Moderator
2,357 Views

I don't have GCC8.2 installed, but couldn't reproduce it with 7.3.0

orcsle113:/tmp$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.3.0-27ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)


orcsle113:/tmp$ icpc t.cpp -V -g -O2 -std=c++17
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.1.144 Build 20181018
Copyright (C) 1985-2018 Intel Corporation.  All rights reserved.

Edison Design Group C/C++ Front End, version 5.0 (Oct 18 2018 02:20:23)
Copyright 1988-2018 Edison Design Group, Inc.

GNU ld (GNU Binutils for Ubuntu) 2.30
orcsle113:/tmp$ ./a.out
Hello, World!

$ cat t.cpp
#include <iostream>
using namespace std;

int main()
{
    cout << "Hello, World!"<< endl;
    return 0;
}
 

0 Kudos
Bastian_B_
New Contributor I
2,357 Views

On Arch Linux, with GCC 8.2 and Intel 2019 Update 1 (your exact versions) I can't reproduce your problem either.

Since GCC 8.2 isn't the default compiler on Ubuntu 18.04.1 I think it is required to point icpc to your GCC include files, a convenient way to do might be to use the "GXX_INCLUDE" environment variable:

For example on Arch Linux I use

export GXX_INCLUDE=/usr/lib/gcc/x86_64-pc-linux-gnu/7.4.1/include/c++
icpc -gxx-name=g++-7 ...
icc -gcc-name=gcc-7 ...

when using GCC 7 as the backend.

0 Kudos
Reply