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

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

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

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

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

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

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

  • 库 (-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: 找不到 -llibSomething

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

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

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

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

文章最后的问题是:

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

the SDSoC is a program develop by xilinx. More informations here. Also I posted a similar question on the xilinx forum with no answer so far.

最佳答案

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

关于c++ - 在 Eclipse 环境中使用共享库 (SDSoC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50241765/

相关文章:

c++ - 模板参数 C<void ()> 和 C<void (*)()> 的区别

c++ - 如何在编译时判断函数是否静态

python - 如何在 Linux RHEL 6.6 上安装 docker-compose?

java - Eclipse-在Hadoop上运行不会提示任何内容

c++ - 在非成员函数上使用 delete 有什么意义?

C++ std::set 插入时读取无效

java - eclipse IDE错误警告未使用的字段

eclipse - 如何使用 Eclipse Mercurial Plugin 制作补丁?

c++ - cc (C++) 中 -h <name> 和 -o <outputfile> 选项的区别

linux - 安装appdynamics时出现问题