【问题标题】:Using Shared library in an Eclipse enviroment (SDSoC)在 Eclipse 环境中使用共享库 (SDSoC)
【发布时间】:2018-10-18 21:16:49
【问题描述】:

假设我有一个共享库libSomething.so 和头文件something.h

该库经过交叉编译和测试(或者,更好的是,直接在目标平台上编译,与示例应用程序链接和测试)。 现在我想在另一个巨大的项目中使用这个共享库,Eclipse 交叉编译所有文件,之后,我将把可执行文件发送到目标。 (不幸的是,无法直接在目标上编译这个项目)。

目的是在 SDSoC*(基于 eclipse 的 Vivado 程序)上使用相同的共享库。为此:

-右键单击应用程序->属性->C/C++构建->设置->工具设置->SDS++链接器->库

  • 库搜索路径 (-L) -> 添加 -> "path/to/library"

  • Libraries (-l) -> add -> "libSomething"(我也试过 "libSomething.so" 效果相同)。

控制台显示cannot find -llibSomething。完整的行是:

/opt/Xilinx/SDK/2017.4/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/bin/ld: cannot find -llibSomething

另外,我尝试在 C/C++ General -> Code Analysis -> Paths and Symbols -> Libraries and Library Paths 中添加文件夹和库。结果是一样的。

另外,我通过控制台消息验证了 sds++ 编译器调用是正确的:

sds++ -L/path/to/library --remote_ip_cache ......

即使在 Makefile 中,指令也是正确的。我无法面对这个问题。我做错了什么?

在文章的最后,问题是:

如何在 SDSoC 中使用(和链接)共享库?

SDSoC 是由 xilinx 开发的程序。更多信息 here。 我也在xilinx forum 上发布了一个类似的问题 目前还没有答案。

【问题讨论】:

  • 我不确定我是否理解:你想要我转换libSomething ---> Something
  • 难以置信!有用!经过一整天的尝试写入正确的makefile!谢谢!回答问题,以便我接受它

标签: c++ linux eclipse compiler-errors shared-libraries


【解决方案1】:

链接器添加了lib 前缀和文件扩展名,所以不要将它们包含在库列表中。使用Something 而不是libSomething

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 2014-06-20
    • 2015-09-30
    • 2021-11-30
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多