Я могу прекрасно использовать libsodium 1.0.7 в Ubuntu, но, похоже, возникают некоторые проблемы при попытке кросс-компилировать библиотеку libsodium в архитектуру armv5 (armv5tejl-unknown-linux-gnueabihf
). Я использовал ./configure --host=armv5tejl-unknown-linux-gnueabihf
, а затем make DESTDIR=/home/myself/ARM/
.
Все файлы генерируются нормально (заголовки, файлы статических и общих библиотек), и я могу скомпилировать и связать небольшую тестовую C-программу, которая затем генерирует ошибку сегментации при выполнении на моей цели ARMv5 (toolchain и все в порядке, все остальное я компилирую & ссылка, не использующая libsodium, отлично работает на моей машине ARM):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sodium.h"
int main()
{
printf("sodium_init()=%d\n",sodium_init()); // Fine, = 0
unsigned char pbk[crypto_box_PUBLICKEYBYTES];
unsigned char sbk[crypto_box_SECRETKEYBYTES];
crypto_box_keypair(pbk,sbk); // <-- Segmentation fault.
}
Я также пробовал использовать официальные инструкции по кросс-компиляции для ARM по адресу https://download.libsodium.org/doc/installation/index.html, но настроить не удается из-за отсутствия файла nosys.specs
. Есть ли где-нибудь, где я могу скачать это (я просмотрел его, и кажется, что он должен быть специально сгенерирован для пакета libsodium)?
#include
, чтобы сделать ваш пример автономным. Может проблема в нем? - person 5gon12eder   schedule 11.12.2015