Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 如何在Raspberry Pi上构建Paho MQTT C静态库?_Cmake_Openssl_Static Libraries_Paho_Ninja - Fatal编程技术网

Cmake 如何在Raspberry Pi上构建Paho MQTT C静态库?

Cmake 如何在Raspberry Pi上构建Paho MQTT C静态库?,cmake,openssl,static-libraries,paho,ninja,Cmake,Openssl,Static Libraries,Paho,Ninja,我试图在Raspberry Pi 3 B+上构建Eclipse Paho MQTT C的静态库。作为先决条件,有必要在系统上安装OpenSSL库的静态版本 首先,我尝试使用以下命令获取它: git clone git://git.openssl.org/openssl.git cd openssl git checkout OpenSSL_1_1_1a ./config -static sudo make install 这会在/usr/local/lib中生成一个libssl.a文件。但是,

我试图在Raspberry Pi 3 B+上构建Eclipse Paho MQTT C的静态库。作为先决条件,有必要在系统上安装OpenSSL库的静态版本

首先,我尝试使用以下命令获取它:

git clone git://git.openssl.org/openssl.git
cd openssl
git checkout OpenSSL_1_1_1a
./config -static
sudo make install
这会在
/usr/local/lib
中生成一个
libssl.a
文件。但是,当我尝试使用以下命令构建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

在几个Stackoverflow问题中,建议的解决方案似乎是使用
共享
标志构建静态OpenSSL库:
/config shared-static
但即便如此,构建静态泛美卫生组织图书馆也失败了,出现了完全相同的错误


我应该补充一点,在其他硬件架构上,我没有遇到任何与此过程相关的问题。这个问题是否与树莓皮有关?我该如何解决它呢?

CFLAGS=-fPIC./config shared-static
似乎对OpenSSL有效。但是,在构建静态Paho MQTT C库(完成时没有任何错误)之后,在任何地方都找不到静态库


如果我在
/usr/local/lib
中查找,我在那里只找到动态.o库,没有静态.a库。为什么这在Pi上不起作用,但在另一个系统上却工作得很好?

请不要发布带有错误消息的图片。相反,以文本形式发布错误消息。在其他原因中,这是堆栈溢出的一个规则。请参阅。抱歉,错误已添加为文本。关于
使用-fPIC重新编译的“标准”问题。您需要使用该选项编译OpenSSL。例如,请参阅关于执行此操作的可能方法。您是否尝试在
cmake
命令中添加另一个定义
-DCMAKE\u POSITION\u INDEPENDENT\u code=ON
,以启用所有目标的PIC?(建议)
/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