rust-qt / ritual

Use C++ libraries from Rust
Apache License 2.0
1.22k stars 49 forks source link

fatal error: 'stddef.h' file not found #49

Closed Riateche closed 5 years ago

Riateche commented 7 years ago

From @jonas-schievink on January 28, 2017 20:6

I'm trying to write a crate that depends on qt_gui, but compilation of qt_core fails with an error that really shouldn't happen. I'm on x86-64 Arch Linux.

   Compiling qt_core v0.1.3
error: failed to run custom build command for `qt_core v0.1.3`
process didn't exit successfully: `/home/jonas/dev/qgui/target/debug/build/qt_core-d308c34030383918/build-script-build` (exit code: 1)
--- stdout
Detecting Qt directories...
Executing command: "qmake" "-query" "QT_INSTALL_HEADERS"
QT_INSTALL_HEADERS = "/usr/include/qt"
Executing command: "qmake" "-query" "QT_INSTALL_LIBS"
QT_INSTALL_LIBS = "/usr/lib"
Reading input Cargo.toml
Parsing C++ headers.
clang version 3.9.1 (tags/RELEASE_391/final)
Initializing clang...
clang arguments: ["-Xclang", "-detailed-preprocessing-record", "-fPIC", "-fcxx-exceptions", "-std=gnu++11", "-I", "/usr/include/qt", "-I", "/usr/include/qt/QtCore"]
Diagnostics:
/../lib64/gcc/x86_64-pc-linux-gnu/6.3.1/../../../../include/c++/6.3.1/cstddef:50:10: fatal error: 'stddef.h' file not found
Error:
   0: fatal clang error
   1: C++ parser failed

Output of clang++ -v:

clang version 3.9.1 (tags/RELEASE_391/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.1
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.3.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/6.3.1
Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.3.1
Candidate multilib: .;@m64
Selected multilib: .;@m64

Rust version: rustc 1.14.0 (e8a012324 2016-12-16)

Qt version seems to be 5.7.1.

_Copied from original issue: rust-qt/qtcore#1

Riateche commented 7 years ago

From @iovxw on March 3, 2017 16:15

Set CLANG_SYSTEM_INCLUDE_PATH can fix this

https://github.com/rust-qt/cpp_to_rust#environment-variables

Riateche commented 7 years ago

From @frozencemetery on April 15, 2017 20:41

Same problem, Debian testing/unstable.

$ clang++ -v
clang version 3.8.1-19 (tags/RELEASE_381/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/5.4.1
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/6.3.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.4.1
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6.3.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.3.0
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
Riateche commented 5 years ago

This error should be fixed by setting CLANG_SYSTEM_INCLUDE_PATH to the include directory of your clang installation, like [path_to_clang]/lib/clang/[version]/include.