在Eclipse环境中使用共享库(SDSoC)

时间:2018-05-08 20:25:00

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

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

对库进行了交叉编译和测试(或者更好,直接在目标平台上编译,使用示例应用程序进行链接和测试)。 现在我想在另一个大型项目中使用这个共享库,其中Eclipse交叉编译所有文件,然后,我将可执行文件发送到目标。 (不幸的是,不可能直接在目标上编译这个项目。)

目的是在SDSoC *上使用相同的共享库(基于eclipse的Vivado程序)。要做到这一点:

- 点击应用程序 - >属性 - > C / C ++ Build - >设置 - >工具设置 - > SDS ++ Linker - >库

  • 图书馆搜索路径(-L) - >添加 - > "路径/到/文库"

  • 库(-l) - >添加 - > " libSomething" (我也试过" libSomething.so"效果相同)。

screenshot of the eclipse enviroment

控制台显示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中添加文件夹和库 - >代码分析 - >路径和符号 - >图书馆和图书馆路径。结果是一样的。

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

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

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

在帖子的最后,问题是:

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

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

1 个答案:

答案 0 :(得分:1)

链接器会添加lib前缀和文件扩展名,因此不要在库列表中包含这些内容。使用Something代替libSomething