Я не могу найти ответы, поэтому я прошу здесь.
Я использую кросс-компилятор Linaro 64bit ARM для компиляции моего кода на локальном Ubuntu 14.04 64-битной Linux на Intel (gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++). [ ! d1]
Мой код требует использования libsensor4 и libsensor4-dev с опцией компоновщика -lsensors. У меня нет проблем с компиляцией моего кода с использованием 64-битного Ubuntu 14.04 хоста Linux на Intel. Но каждый раз, когда я компилирую свой код с использованием 64-битного кросс-компилятора ARM, он имеет ошибки:
cannot find -lsensors
и
sensors/sensors.h: no such file or directory.
-lsensors находится в libsensors4.deb, а кнопка sensors.h - от libsensors4-dev. так как я могу получить эти два пакета в кросс-компилятор Linaro?
Один из способов получить пакеты aarch64 в системе сборки - включить его в качестве внешней архитектуры:
sudo dpkg --add-architecture aarch64
sudo apt-get update
Теперь вы можете удалить libsensors4-dev для своей архитектуры сборки и установить ее для архитектура хоста aarch64:
sudo apt-get install libsensors4-dev- libsensors4-dev:aarch64+
Необходимо удалить пакет архитектуры сборки, потому что он не может сосуществовать с одним и тем же именем для другой архитектуры. Однако зависимость libsensors4:aarch64 может сосуществовать с libsensors4 1. Это означает, что вы можете продолжать запускать программы в системе сборки, динамически связанные с libsensors4, но вы не можете использовать libsensors4-dev для привязки к ней новых программ архитектуры сборки.
Я не знаю как вы настроили и установили кросс-компилятор, но GCC обычно выбирает канонические места для файлов заголовков (/usr/include) и файлов библиотек (/usr/lib/<architecture>-<system-type>), которые точно соответствуют тому, где DPKG извлекает их из libsensors4-dev (любая архитектура). Если это не так, вы можете указать GCC / G ++, чтобы добавить каталоги файлов с файлами -I<PATH> и библиотеки с -L<PATH>. Кроме того, вы можете указать текущие каталоги include с каталогами gcc -xc++ -E -v /dev/null и текущей библиотеки с помощью gcc gcc -print-search-dirs.
1 Вы можете проверить, может ли пакет сосуществуют со своим «родным братом» другой архитектуры, если вы посмотрите на поле Multi-Arch в информации управления пакетами. «То же» означает, что он может сосуществовать. Используйте dpkg-query -s <PACKAGE>, apt-cache show <PACKAGE> или dpkg-deb -I <DEB-FILE>, чтобы отобразить информацию управления пакетами. Дополнительные сведения см. В спецификации Multiarch Specification для полей управления бинарным пакетом.
Один из способов получить пакеты aarch64 в системе сборки - включить его в качестве внешней архитектуры:
sudo dpkg --add-architecture aarch64
sudo apt-get update
Теперь вы можете удалить libsensors4-dev для своей архитектуры сборки и установить ее для архитектура хоста aarch64:
sudo apt-get install libsensors4-dev- libsensors4-dev:aarch64+
Необходимо удалить пакет архитектуры сборки, потому что он не может сосуществовать с одним и тем же именем для другой архитектуры. Однако зависимость libsensors4:aarch64 может сосуществовать с libsensors4 1. Это означает, что вы можете продолжать запускать программы в системе сборки, динамически связанные с libsensors4, но вы не можете использовать libsensors4-dev для привязки к ней новых программ архитектуры сборки.
Я не знаю как вы настроили и установили кросс-компилятор, но GCC обычно выбирает канонические места для файлов заголовков (/usr/include) и файлов библиотек (/usr/lib/<architecture>-<system-type>), которые точно соответствуют тому, где DPKG извлекает их из libsensors4-dev (любая архитектура). Если это не так, вы можете указать GCC / G ++, чтобы добавить каталоги файлов с файлами -I<PATH> и библиотеки с -L<PATH>. Кроме того, вы можете указать текущие каталоги include с каталогами gcc -xc++ -E -v /dev/null и текущей библиотеки с помощью gcc gcc -print-search-dirs.
1 Вы можете проверить, может ли пакет сосуществуют со своим «родным братом» другой архитектуры, если вы посмотрите на поле Multi-Arch в информации управления пакетами. «То же» означает, что он может сосуществовать. Используйте dpkg-query -s <PACKAGE>, apt-cache show <PACKAGE> или dpkg-deb -I <DEB-FILE>, чтобы отобразить информацию управления пакетами. Дополнительные сведения см. В спецификации Multiarch Specification для полей управления бинарным пакетом.
Один из способов получить пакеты aarch64 в системе сборки - включить его в качестве внешней архитектуры:
sudo dpkg --add-architecture aarch64
sudo apt-get update
Теперь вы можете удалить libsensors4-dev для своей архитектуры сборки и установить ее для архитектура хоста aarch64:
sudo apt-get install libsensors4-dev- libsensors4-dev:aarch64+
Необходимо удалить пакет архитектуры сборки, потому что он не может сосуществовать с одним и тем же именем для другой архитектуры. Однако зависимость libsensors4:aarch64 может сосуществовать с libsensors4 1. Это означает, что вы можете продолжать запускать программы в системе сборки, динамически связанные с libsensors4, но вы не можете использовать libsensors4-dev для привязки к ней новых программ архитектуры сборки.
Я не знаю как вы настроили и установили кросс-компилятор, но GCC обычно выбирает канонические места для файлов заголовков (/usr/include) и файлов библиотек (/usr/lib/<architecture>-<system-type>), которые точно соответствуют тому, где DPKG извлекает их из libsensors4-dev (любая архитектура). Если это не так, вы можете указать GCC / G ++, чтобы добавить каталоги файлов с файлами -I<PATH> и библиотеки с -L<PATH>. Кроме того, вы можете указать текущие каталоги include с каталогами gcc -xc++ -E -v /dev/null и текущей библиотеки с помощью gcc gcc -print-search-dirs.
1 Вы можете проверить, может ли пакет сосуществуют со своим «родным братом» другой архитектуры, если вы посмотрите на поле Multi-Arch в информации управления пакетами. «То же» означает, что он может сосуществовать. Используйте dpkg-query -s <PACKAGE>, apt-cache show <PACKAGE> или dpkg-deb -I <DEB-FILE>, чтобы отобразить информацию управления пакетами. Дополнительные сведения см. В спецификации Multiarch Specification для полей управления бинарным пакетом.
Один из способов получить пакеты aarch64
в системе сборки - включить его в качестве внешней архитектуры:
sudo dpkg --add-architecture aarch64
sudo apt-get update
Теперь вы можете удалить libsensors4-dev
для своей архитектуры сборки и установить ее для архитектура хоста aarch64
:
sudo apt-get install libsensors4-dev- libsensors4-dev:aarch64+
Необходимо удалить пакет архитектуры сборки, потому что он не может сосуществовать с одним и тем же именем для другой архитектуры. Однако зависимость libsensors4:aarch64
может сосуществовать с libsensors4
1. Это означает, что вы можете продолжать запускать программы в системе сборки, динамически связанные с libsensors4
, но вы не можете использовать libsensors4-dev
для ссылки на новые архитектуры архитектуры сборки против него.
Я не знаю, как вы настроили и установили кросс-компилятор, но GCC обычно выбирает канонические места для файлов заголовков (/usr/include
) и файлов библиотек (/usr/lib/<architecture>-<system-type>
), которые точно соответствуют тому, где DPKG извлекает их из libsensors4-dev
(любая архитектура). Если это не так, вы можете указать GCC / G ++, чтобы добавить каталоги файлов с файлами -I<PATH>
и библиотеки с -L<PATH>
. Кроме того, вы можете перечислить текущие каталоги include с каталогами gcc -xc++ -E -v /dev/null
и текущей библиотеки с помощью gcc gcc -print-search-dirs
.
1 Вы можете проверить, может ли пакет сосуществовать со своим «родным братом» другой архитектуры, если вы смотрите поле Multi-Arch
в информации управления пакетами. «То же» означает, что он может сосуществовать. Используйте dpkg-query -s <PACKAGE>
, apt-cache show <PACKAGE>
или dpkg-deb -I <DEB-FILE>
, чтобы отобразить информацию управления пакетами. Более подробную информацию см. В спецификации Multiarch Specification для полей управления бинарным пакетом .
Один из способов получить пакеты aarch64
в системе сборки - включить его в качестве внешней архитектуры:
sudo dpkg --add-architecture aarch64
sudo apt-get update
Теперь вы можете удалить libsensors4-dev
для своей архитектуры сборки и установить ее для архитектура хоста aarch64
:
sudo apt-get install libsensors4-dev- libsensors4-dev:aarch64+
Необходимо удалить пакет архитектуры сборки, потому что он не может сосуществовать с одним и тем же именем для другой архитектуры. Однако зависимость libsensors4:aarch64
может сосуществовать с libsensors4
1. Это означает, что вы можете продолжать запускать программы в системе сборки, динамически связанные с libsensors4
, но вы не можете использовать libsensors4-dev
для ссылки на новые архитектуры архитектуры сборки против него.
Я не знаю, как вы настроили и установили кросс-компилятор, но GCC обычно выбирает канонические места для файлов заголовков (/usr/include
) и файлов библиотек (/usr/lib/<architecture>-<system-type>
), которые точно соответствуют тому, где DPKG извлекает их из libsensors4-dev
(любая архитектура). Если это не так, вы можете указать GCC / G ++, чтобы добавить каталоги файлов с файлами -I<PATH>
и библиотеки с -L<PATH>
. Кроме того, вы можете перечислить текущие каталоги include с каталогами gcc -xc++ -E -v /dev/null
и текущей библиотеки с помощью gcc gcc -print-search-dirs
.
1 Вы можете проверить, может ли пакет сосуществовать со своим «родным братом» другой архитектуры, если вы смотрите поле Multi-Arch
в информации управления пакетами. «То же» означает, что он может сосуществовать. Используйте dpkg-query -s <PACKAGE>
, apt-cache show <PACKAGE>
или dpkg-deb -I <DEB-FILE>
, чтобы отобразить информацию управления пакетами. Более подробную информацию см. В спецификации Multiarch Specification для полей управления бинарным пакетом .
Один из способов получить пакеты aarch64
в системе сборки - включить его в качестве внешней архитектуры:
sudo dpkg --add-architecture aarch64
sudo apt-get update
Теперь вы можете удалить libsensors4-dev
для своей архитектуры сборки и установить ее для архитектура хоста aarch64
:
sudo apt-get install libsensors4-dev- libsensors4-dev:aarch64+
Необходимо удалить пакет архитектуры сборки, потому что он не может сосуществовать с одним и тем же именем для другой архитектуры. Однако зависимость libsensors4:aarch64
может сосуществовать с libsensors4
1. Это означает, что вы можете продолжать запускать программы в системе сборки, динамически связанные с libsensors4
, но вы не можете использовать libsensors4-dev
для ссылки на новые архитектуры архитектуры сборки против него.
Я не знаю, как вы настроили и установили кросс-компилятор, но GCC обычно выбирает канонические места для файлов заголовков (/usr/include
) и файлов библиотек (/usr/lib/<architecture>-<system-type>
), которые точно соответствуют тому, где DPKG извлекает их из libsensors4-dev
(любая архитектура). Если это не так, вы можете указать GCC / G ++, чтобы добавить каталоги файлов с файлами -I<PATH>
и библиотеки с -L<PATH>
. Кроме того, вы можете перечислить текущие каталоги include с каталогами gcc -xc++ -E -v /dev/null
и текущей библиотеки с помощью gcc gcc -print-search-dirs
.
1 Вы можете проверить, может ли пакет сосуществовать со своим «родным братом» другой архитектуры, если вы смотрите поле Multi-Arch
в информации управления пакетами. «То же» означает, что он может сосуществовать. Используйте dpkg-query -s <PACKAGE>
, apt-cache show <PACKAGE>
или dpkg-deb -I <DEB-FILE>
, чтобы отобразить информацию управления пакетами. Более подробную информацию см. В спецификации Multiarch Specification для полей управления бинарным пакетом .
Один из способов получить пакеты aarch64
в системе сборки - включить его в качестве внешней архитектуры:
sudo dpkg --add-architecture aarch64
sudo apt-get update
Теперь вы можете удалить libsensors4-dev
для своей архитектуры сборки и установить ее для архитектура хоста aarch64
:
sudo apt-get install libsensors4-dev- libsensors4-dev:aarch64+
Необходимо удалить пакет архитектуры сборки, потому что он не может сосуществовать с одним и тем же именем для другой архитектуры. Однако зависимость libsensors4:aarch64
может сосуществовать с libsensors4
1. Это означает, что вы можете продолжать запускать программы в системе сборки, динамически связанные с libsensors4
, но вы не можете использовать libsensors4-dev
для ссылки на новые архитектуры архитектуры сборки против него.
Я не знаю, как вы настроили и установили кросс-компилятор, но GCC обычно выбирает канонические места для файлов заголовков (/usr/include
) и файлов библиотек (/usr/lib/<architecture>-<system-type>
), которые точно соответствуют тому, где DPKG извлекает их из libsensors4-dev
(любая архитектура). Если это не так, вы можете указать GCC / G ++, чтобы добавить каталоги файлов с файлами -I<PATH>
и библиотеки с -L<PATH>
. Кроме того, вы можете перечислить текущие каталоги include с каталогами gcc -xc++ -E -v /dev/null
и текущей библиотеки с помощью gcc gcc -print-search-dirs
.
1 Вы можете проверить, может ли пакет сосуществовать со своим «родным братом» другой архитектуры, если вы смотрите поле Multi-Arch
в информации управления пакетами. «То же» означает, что он может сосуществовать. Используйте dpkg-query -s <PACKAGE>
, apt-cache show <PACKAGE>
или dpkg-deb -I <DEB-FILE>
, чтобы отобразить информацию управления пакетами. Более подробную информацию см. В спецификации Multiarch Specification для полей управления бинарным пакетом .