#gcc #centos #g #arm64
#gcc #centos #g #arm64
Вопрос:
Я пытаюсь перекрестно скомпилировать cpp-коды из Centos 7 в arm64, используя aarch64-linux-gnu-g .
Я установил gcc-aarch64-linux-gnu и gcc-c -aarch64-linux-gnu. Когда я скомпилировал, он выдал ошибку «не удалось найти заголовочные файлы c «.
[root@server app]# aarch64-linux-gnu-g -fPIC -shared -pthread -I /usr/lib/gcc/aarch64-linux-gnu/4.8.5/include -I /usr/local/ssl/include -I /usr/java/jdk1.8.0_91/include -I /usr/java/jdk1.8.0_91/include/linux -L /usr/local/ssl/lib -l:libcrypto.so -l:libssl.so *.cpp
In file included from cms_functions.h:4:0,
from cms_functions.cpp:2:
ocsp_functions.h:8:24: fatal error: sys/socket.h: No such file or directory
#include <sys/socket.h>
^
compilation terminated.
In file included from crl_functions.cpp:2:0:
crl_functions.h:8:24: fatal error: sys/socket.h: No such file or directory
#include <sys/socket.h>
^
compilation terminated.
In file included from crypto_functions.cpp:1:0:
crypto_functions.h:4:20: fatal error: iostream: No such file or directory
#include <iostream>
Есть идеи?
Спасибо
Ответ №1:
По умолчанию пакет gcc-c -aarch64-linux-gnu установит только компилятор.
Вам необходимо установить заголовки glibc для кросс-компилятора aarch64. Вероятно, вам нужно установить glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm
glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm
и. sys/socket.h присутствует во втором пакете.
Насколько я знаю, нет пакета rpm, доступного напрямую с заголовками libstdc для centos 7. Одним из решений может быть перекрестная компиляция libstd непосредственно из исходного кода.
Комментарии:
1. Я попытался установить glibc-headers-2.17-317.el7.aarch64.rpm, но это не удалось, так как это неправильный тип arch на моей машине разработки x86 под управлением centos. В моей системе уже установлены glibc-headers-2.17-317.el7.x86_64.
2. Я обновил свой ответ. Извините, я не видел, что вы были перекрестны .компиляция
3. Я установил два rpm, и это устранило предыдущие ошибки. Теперь он жалуется, что не может найти заголовочные файлы iostream и cstring. По-прежнему отсутствуют файлы c include / library для aarch64? Спасибо.