Я пытаюсь собрать статические библиотеки Eclipse Paho MQTT C на Raspberry Pi 3 B +. В качестве предварительного условия необходимо иметь в системе статическую версию библиотеки OpenSSL.
Сначала я попытался получить ее с помощью следующих команд:
git clone git://git.openssl.org/openssl.git
cd openssl
git checkout OpenSSL_1_1_1a
./config -static
sudo make install
Это действительно приводит кlibssl.a
Файл в /usr/local/lib
. Однако, когда я пытаюсь собрать статические библиотеки Paho, используя следующие команды, происходит сбой с ошибкой ниже:
git clone https://github.com/eclipse/paho.mqtt.c.git
mkdir /tmp/build.paho
cd /tmp/build.paho
cmake -GNinja -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_STATIC=TRUE ~/paho.mqtt.c
ninja
/usr/bin/ld: /usr/local/lib/libssl.a(methods.o): relocation R_ARM_MOVW_ABS_NC against ‘a local symbol’ can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libssl.a: error adding symbols: Bad value
Предлагаемое решение этой проблемы в нескольких вопросах Stackoverflow, по-видимому, заключается в создании статической библиотеки OpenSSL с флагом shared
: ./config shared -static
Но даже в этом случае сборка статических библиотек Paho завершается неудачно с точно такой же ошибкой.
Я должен добавить, что у меня не было проблем с этой процедурой на других аппаратных архитектурах. Может ли эта проблема быть связана с Raspberry Pi каким-либо образом? Как мне это решить?