在 Eclipse 环境中使用共享库 (SDSoC)
Using Shared library in an Eclipse enviroment (SDSoC)
假设我有一个共享库 libSomething.so
和头文件 something.h
。
该库经过交叉编译和测试(或者,更好的是,直接在目标平台上编译,link使用示例应用程序进行编辑和测试)。
现在我想在另一个大项目中使用这个共享库,在这个项目中 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++ 常规 -> 代码分析 -> 路径和符号 -> 库和库路径中添加文件夹和库。结果是一样的
此外,我已经通过控制台消息验证了 sds++ 编译器调用是正确的:
sds++ -L/path/to/library --remote_ip_cache ......
即使在Makefile中,指令也是正确的。我无法面对这个问题。我做错了什么?
在post的最后,问题是:
如何在 SDSoC 中使用(和 link)共享库?
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
.
假设我有一个共享库 libSomething.so
和头文件 something.h
。
该库经过交叉编译和测试(或者,更好的是,直接在目标平台上编译,link使用示例应用程序进行编辑和测试)。 现在我想在另一个大项目中使用这个共享库,在这个项目中 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++ 常规 -> 代码分析 -> 路径和符号 -> 库和库路径中添加文件夹和库。结果是一样的
此外,我已经通过控制台消息验证了 sds++ 编译器调用是正确的:
sds++ -L/path/to/library --remote_ip_cache ......
即使在Makefile中,指令也是正确的。我无法面对这个问题。我做错了什么?
在post的最后,问题是:
如何在 SDSoC 中使用(和 link)共享库?
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
.