example1
example1 copied to clipboard
Failed for scapix_generated
When running 'default.sh' in Bash, an error is encountered, and this error repeats multiple times.
ENV: ubuntu-22.04
tips:
[ 5%] Building CXX object _deps/scapix-1.0.35-build/CMakeFiles/scapix.dir/source/scapix/bridge/python/dummy.cpp.o
[ 10%] Linking CXX static library libscapix.a
[ 10%] Built target scapix
Scanning dependencies of target chatlib_scapix_generated
[ 15%] Running Scapix Bridge for ... example1/source/chat/contact.h
... example1/source/chat/contact.h:10:10: fatal error: 'string' file not found
#include
I cannot recreate this issue using Ubuntu 22.04 with gcc 11.4 compiler.
This is what I installed on clean Ubuntu 22.04:
sudo snap install cmake
sudo apt install g++ make
Can you post here CMake output with information on compiler chosen by CMake?
The following is the CMake configuration log.
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/damone/project/example1/build/default
[ 7%] Building CXX object _deps/scapix-1.0.35-build/CMakeFiles/scapix.dir/source/scapix/bridge/cpp/dummy.cpp.o
[ 14%] Linking CXX static library libscapix.a
[ 14%] Built target scapix
Scanning dependencies of target chatlib_scapix_generated
[ 21%] Running Scapix Bridge for /home/damone/project/example1/source/chat/contact.h
/home/damone/project/example1/source/chat/contact.h:10:10: fatal error: 'string' file not found
#include <string>
^~~~~~~~
1 error generated.
Thank you for your report. This is strange, as it works for me in the same environment.
Can you please run one more test?
In the file:
~\.cmodule\scapix\1.0.35\CMakeLists.txt
In line 474, replace:
set(scapix_clang_config)
With:
set(scapix_clang_config -v)
This will print more info during build. This is what I get:
[ 21%] Running Scapix Bridge for /home/boris/dev/scapix/example1/source/chat/contact.h
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 08d094a0e457360ad8b94b017d2dc277e697ca76)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir:
Found candidate GCC installation: /../lib/gcc/x86_64-linux-gnu/11
Selected GCC installation: /../lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 08d094a0e457360ad8b94b017d2dc277e697ca76)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/boris/.cmodule/scapix_bin/2.0.15/Linux-x86_64
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
clang Invocation:
"/home/boris/.cmodule/scapix_bin/2.0.15/Linux-x86_64/clang-tool" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-fsyntax-only" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "contact.h" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-v" "-fcoverage-compilation-dir=/home/boris/dev/scapix/example1" "-resource-dir" "/home/boris/.cmodule/scapix_bin/2.0.15/lib/clang/16" "-I" "/home/boris/dev/scapix/example1/source" "-I" "/home/boris/.cmodule/scapix/1.0.35/source" "-I" "/home/boris/.cmodule/scapix/1.0.35/java_api/jdk-11.0.2" "-D" "SCAPIX_BRIDGE=cpp" "-D" "SCAPIX_BRIDGE_cpp" "-D" "SCAPIX_PLATFORM=generic" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward" "-internal-isystem" "/home/boris/.cmodule/scapix_bin/2.0.15/lib/clang/16/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" "-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-std=c++17" "-fdeprecated-macro" "-fdebug-compilation-dir=/home/boris/dev/scapix/example1" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c++" "/home/boris/dev/scapix/example1/source/chat/contact.h"
clang -cc1 version 16.0.0 based upon LLVM 16.0.0 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/home/boris/dev/scapix/example1/source
/home/boris/.cmodule/scapix/1.0.35/source
/home/boris/.cmodule/scapix/1.0.35/java_api/jdk-11.0.2
/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11
/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11
/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward
/home/boris/.cmodule/scapix_bin/2.0.15/lib/clang/16/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
"Okay, I tried it, and the detailed results are as follows:"
Scanning dependencies of target chatlib_scapix_generated
[ 21%] Running Scapix Bridge for /home/damone/project/example1/source/chat/contact.h
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 08d094a0e457360ad8b94b017d2dc277e697ca76)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir:
Found candidate GCC installation: /../lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /../lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /../lib/gcc/x86_64-linux-gnu/12
Selected GCC installation: /../lib/gcc/x86_64-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64
Found CUDA installation: /usr/local/cuda-11.7, version 11.7
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 08d094a0e457360ad8b94b017d2dc277e697ca76)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/damone/.cmodule/scapix_bin/2.0.15/Linux-x86_64
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64
Found CUDA installation: /usr/local/cuda-11.7, version 11.7
clang Invocation:
"/home/damone/.cmodule/scapix_bin/2.0.15/Linux-x86_64/clang-tool" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-fsyntax-only" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "contact.h" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-v" "-fcoverage-compilation-dir=/home/damone/project/example1" "-resource-dir" "/home/damone/.cmodule/scapix_bin/2.0.15/lib/clang/16" "-I" "/home/damone/project/example1/source" "-I" "/home/damone/.cmodule/scapix/1.0.35/source" "-I" "/home/damone/.cmodule/scapix/1.0.35/java_api/jdk-11.0.2" "-D" "SCAPIX_BRIDGE=cpp" "-D" "SCAPIX_BRIDGE_cpp" "-D" "SCAPIX_PLATFORM=generic" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/x86_64-linux-gnu" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/backward" "-internal-isystem" "/home/damone/.cmodule/scapix_bin/2.0.15/lib/clang/16/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include" "-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-std=c++17" "-fdeprecated-macro" "-fdebug-compilation-dir=/home/damone/project/example1" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c++" "/home/damone/project/example1/source/chat/contact.h"
clang -cc1 version 16.0.0 based upon LLVM 16.0.0 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/backward"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/home/damone/project/example1/source
/home/damone/.cmodule/scapix/1.0.35/source
/home/damone/.cmodule/scapix/1.0.35/java_api/jdk-11.0.2
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++
/home/damone/.cmodule/scapix_bin/2.0.15/lib/clang/16/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
/home/damone/project/example1/source/chat/contact.h:10:10: fatal error: 'string' file not found
#include <string>
^~~~~~~~
1 error generated.
Okay, I installed gcc 12: sudo apt install gcc-12
, now I have both gcc 11 and gcc 12 installed (like you do) and now I get the same error you get.
CMake picks up gcc 11, while clang based scapix parser picks up gcc 12.
I will investigate further, thanks a lot for your help.
If you need a workaround right now, you need to uninstall multiple versions of gcc and leave only one (you seem to have 3 versions installed: 10, 11, 12).
This problem affects clang in general, when both gcc-11 and gcc-12 is installed on Ubuntu 22.04:
clang fails to find C++ headers in presence of gcc-12 package
I found out this problem exists when you install "gcc-12" package.
If you install "g++-12" package instead, there is no problem.
"gcc-12" package does not install C++ standard library, while "g++-12" package does install it.
This problem affects any instance of clang compiler, including system clang compiler and clang compiler used as scapix parser.