Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed for scapix_generated #6

Open
xiangweizeng opened this issue Aug 2, 2023 · 7 comments
Open

Failed for scapix_generated #6

xiangweizeng opened this issue Aug 2, 2023 · 7 comments

Comments

@xiangweizeng
Copy link

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
^~~~~~~~
1 error generated.
Error while processing /home/damone/project/example1/source/chat/contact.h.
gmake[2]: *** [CMakeFiles/chatlib_scapix_generated.dir/build.make:147:../../generated/bridge/java/contact.cpp] error 1
gmake[1]: *** [CMakeFiles/Makefile2:162:CMakeFiles/chatlib_scapix_generated.dir/all] error 2
gmake: *** [Makefile:91:all] error 2

@Boris-Rasin
Copy link
Member

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?

@xiangweizeng
Copy link
Author

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.

@Boris-Rasin
Copy link
Member

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.

@xiangweizeng
Copy link
Author

"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.

@Boris-Rasin
Copy link
Member

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).

@Boris-Rasin
Copy link
Member

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

@Boris-Rasin
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants