用arm-linux交叉编译器使用动态库时搜索标准路径是什么?

用arm-linux交叉编译器使用动态库时搜索标准路径是什么?,第1张

你可以试着加--verbose选项,可以看到它的搜索路径

如果你有根文件系统,那么通过指定--sysroot=dir,他会在默认的搜索路径之前加上一个dir,在这些地方找;

还可以额外使用-Ldir来添加搜索路径。

一、添加附加包含目录

      法1:-I path(path为头文件路径)

      法2:将头文件拷贝到 /usr/local/include中

      相当于VS中添加包含路径。

二、添加依赖库

       法1,编译阶段,g++编译器编译:

       -L path –lcaffe(path为附加库目录路径;-l指定附加依赖项,比如-lcaffe表示附加libcaffe.so动态库文件)。

执行阶段,在工作目录或环境变量中搜索dll文件:

       添加环境变量:

2.1 /etc/ld.so.conf 文件中方法:

添加库目录,使其成为共享库:

2.1.1、 打开文件:sudo gedit /etc/ld.so.conf

2.1.2、在文件中添加路径(如libnnpack.so的路径)

2.1.2、使其生效:sudo ldconfig

2.2     export方法,参考:http://blog.csdn.net/xzzppp/article/details/53305120

VS中添加附加库目录路径和附加依赖项,分别如下图所示:

法2,在编译阶段直接指定: path/libcaffe.so(path为附加库目录路径,libcaffe.so为动态库,在执行阶段可以直接运行)

法3,, Linux动态库的默认搜索路径是/lib和/usr/lib,将动态库拷贝到这两个文件夹下面。

ld.so.conf只是在编译时查找动态库的路径;

运行时动态库的查找路径默认在/usr/lib和/lib,所以找不到

可以设置LD_LIBRARY_PATH=/usr/local/ma(你动态库的所在目录)

或者把动态库拷贝到/usr/lib或/lib下


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8566033.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存