Ошибки при сборке cpprestsdk с использованием gcc-8.2 - PullRequest
0 голосов
/ 25 января 2019

Когда я пытаюсь собрать cpprestsdk с помощью кросс-компилятора gcc, у меня возникает следующая проблема:

cd /home/ubuntu/projects/cpprestsdk/Release/build_qamf-dev/src && /opt/qamf-dev/x86_64-qamf/bin/x86_64-qamf-linux-gnu-g++  -DCPPREST_EXCLUDE_BROTLI=1 -DCPPREST_FORCE_HTTP_CLIENT_ASIO -DCPPREST_FORCE_HTTP_LISTENER_ASIO -DCPPREST_NO_SSL_LEAK_SUPPRESS -Dcpprest_EXPORTS -I/home/ubuntu/projects/cpprestsdk/Release/include -I/home/ubuntu/projects/cpprestsdk/Release/src/pch -I/home/ubuntu/projects/cpprestsdk/Release/libs/websocketpp -isystem /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/sysroot/usr/include  -std=c++11 -fno-strict-aliasing -O3 -DNDEBUG -fPIC   -Werror -pedantic -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code -o CMakeFiles/cpprest.dir/http/oauth/oauth2.cpp.o -c /home/ubuntu/projects/cpprestsdk/Release/src/http/oauth/oauth2.cpp
cd /home/ubuntu/projects/cpprestsdk/Release/build_qamf-dev/src && /opt/qamf-dev/x86_64-qamf/bin/x86_64-qamf-linux-gnu-g++  -DCPPREST_EXCLUDE_BROTLI=1 -DCPPREST_FORCE_HTTP_CLIENT_ASIO -DCPPREST_FORCE_HTTP_LISTENER_ASIO -DCPPREST_NO_SSL_LEAK_SUPPRESS -Dcpprest_EXPORTS -I/home/ubuntu/projects/cpprestsdk/Release/include -I/home/ubuntu/projects/cpprestsdk/Release/src/pch -I/home/ubuntu/projects/cpprestsdk/Release/libs/websocketpp -isystem /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/sysroot/usr/include  -std=c++11 -fno-strict-aliasing -O3 -DNDEBUG -fPIC   -Werror -pedantic -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code -o CMakeFiles/cpprest.dir/json/json.cpp.o -c /home/ubuntu/projects/cpprestsdk/Release/src/json/json.cpp
[  7%] Building CXX object src/CMakeFiles/cpprest.dir/http/oauth/oauth1.cpp.o
cd /home/ubuntu/projects/cpprestsdk/Release/build_qamf-dev/src && /opt/qamf-dev/x86_64-qamf/bin/x86_64-qamf-linux-gnu-g++  -DCPPREST_EXCLUDE_BROTLI=1 -DCPPREST_FORCE_HTTP_CLIENT_ASIO -DCPPREST_FORCE_HTTP_LISTENER_ASIO -DCPPREST_NO_SSL_LEAK_SUPPRESS -Dcpprest_EXPORTS -I/home/ubuntu/projects/cpprestsdk/Release/include -I/home/ubuntu/projects/cpprestsdk/Release/src/pch -I/home/ubuntu/projects/cpprestsdk/Release/libs/websocketpp -isystem /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/sysroot/usr/include  -std=c++11 -fno-strict-aliasing -O3 -DNDEBUG -fPIC   -Werror -pedantic -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code -o CMakeFiles/cpprest.dir/http/oauth/oauth1.cpp.o -c /home/ubuntu/projects/cpprestsdk/Release/src/http/oauth/oauth1.cpp
[ 10%] Building CXX object src/CMakeFiles/cpprest.dir/uri/uri_builder.cpp.o
[  7%] Building CXX object src/CMakeFiles/cpprest.dir/json/json_serialization.cpp.o
[  8%] Building CXX object src/CMakeFiles/cpprest.dir/uri/uri.cpp.o
In file included from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/ext/string_conversions.h:41,
                 from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/bits/basic_string.h:6391,
                 from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/string:52,
                 from /home/ubuntu/projects/cpprestsdk/Release/src/pch/stdafx.h:55,
                 from /home/ubuntu/projects/cpprestsdk/Release/src/http/client/http_client_msg.cpp:13:
/opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
               ^~~~~~~~~~
In file included from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/ext/string_conversions.h:41,
                 from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/bits/basic_string.h:6391,
                 from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/string:52,
                 from /home/ubuntu/projects/cpprestsdk/Release/src/pch/stdafx.h:55,
                 from /home/ubuntu/projects/cpprestsdk/Release/src/http/client/http_client.cpp:16:
/opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
               ^~~~~~~~~~
compilation terminated.
In file included from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/ext/string_conversions.h:41,
                 from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/bits/basic_string.h:6391,
                 from /opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/string:52,
                 from /home/ubuntu/projects/cpprestsdk/Release/src/pch/stdafx.h:55,
                 from /home/ubuntu/projects/cpprestsdk/Release/src/http/common/http_compression.cpp:14:
/opt/qamf-dev/x86_64-qamf/x86_64-qamf-linux-gnu/include/c++/8.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
               ^~~~~~~~~~
compilation terminated.

Если я заменю -isystem на простой -I, все будет хорошо ...

Я знаю, что gcc работает хорошо, потому что я уже построил zlib openssl opencv и boost 1.69.

EDIT

Чтобы избежать проблемы, я отредактировал Makefile, сгенерированный cmake, и удалил -isystem из cxx flags

...