gpt4 book ai didi

c++ - Eclipse CDT - 链接 libcrypto.so 用于交叉编译

转载 作者:行者123 更新时间:2023-11-30 05:29:40 25 4
gpt4 key购买 nike

我想交叉编译一个使用了一些 OpenSSL 文件的 C++ 程序:

#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/bio.h>
#include <openssl/err.h>

因为交叉编译器的路径(/opt/crosstool/arm-none-linux-gnueabi/include)与默认的/usr/include路径不同,所有 OpenSSL 头文件所在的位置,我必须通过右键单击项目 -> 属性 -> C/C++ 常规 -> 路径和符号 -> 添加... -> /usr/来设置包含路径include 以包含头文件。

与 libcrypto.so 相同:

...C/C++ 通用 --> 库 --> 添加... crypto

...C/C++ General --> Library Paths --> Add... /usr/lib/i386-linux-gnu (在这个文件夹中我找到了 librypto.so)

在构建我的项目时出现以下错误:

/opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libcrypto.so when searching for -lcrypto
/opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libcrypto.a when searching for -lcrypto
/opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lcrypto

似乎是链接错误,但我不知道为什么。感谢您的帮助。

最佳答案

好的,问题终于解决了。我不知道我必须配置 OpenSSL 才能使用它与 ARM 交叉编译。

只需启动您的终端并输入:

    export cross=arm-none-linux-gnueabi-
cd openssl-1.0.1s
./Configure dist --prefix=$HOME/opensslArm
make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib"
make install

现在您的主目录中有一个名为 opensslArm 的文件夹。在此文件夹中,您将找到所有头文件和库本身。因此,在 Eclipse 中,将 opensslArm/include 的路径添加到您的 include 中,将 opensslArm/lib 添加到您的库路径中。在这里查看更多信息:Cross Compile OpenSSH for ARM

关于c++ - Eclipse CDT - 链接 libcrypto.so 用于交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36309466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com