0

我想将作为 StellarisWare /TivaWare 一部分的 freertos_demo 与 wolfSSL 库结合使用,但我发现很难阅读 Makefile(实际上是 makedefs 文件)。

我根据手册下载并编译了wolfSSL。现在在 /usr/local/lib 中有以下文件:

  • /usr/local/lib//libwolfssl.la
  • /usr/local/lib//libwolfssl.so
  • /usr/local/lib//libwolfssl.so.3
  • /usr/local/lib//libwolfssl.so.3.1.0

现在我从 StellarisWare 根目录打开 makedefs 并将以下代码添加到第 160 行:

LIBS=-lwolfssl 此外,我修改了第246252行,它们现在声明如下(两行相同;基本上我只添加了 '${LIBS}'):

'${LIBM}' '${LIBC}' '${LIBGCC}' '${LIBS}';

但是,当我转到 blinky 子目录并执行“make clean; make”时,我收到以下错误:

arm-none-eabi-ld: cannot find -lwolfssl

我错过了什么?

最好的

4

1 回答 1

1

根据@nettrino 的建议,看起来 /usr/local/lib 不在您的系统 LD_LIBRARY_PATH 变量中。您可以使用此命令从终端确认这一点

echo $LD_LIBRARY_PATH

你看到 /usr/local/lib 了吗?如果没有,你可以做两件事之一。

选项 1:遵循@nettrino 的预期建议并在 Makefile 中更改行:

LIBS=-lwolfssl

LIBS=-L/usr/local/lib -lwolfssl

选项 2:编辑您的 .bash_profile(或 .bashrc)并添加以下行:

export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"

然后重新加载终端以获取更新的更改或使用命令

source .bash_profile

(或源 .bashrc 取决于您编辑的那个)

然后再次尝试相同的 echo 命令,您现在在 LD_LIBRARY_PATH 中看到 /usr/local/lib 了吗?

于 2017-01-13T16:17:47.163 回答