ld链接库

作者: 罗蓁蓁 | 来源:发表于2017-10-13 20:22 被阅读7次

ld链接库

`-( ARCHIVES-)'`--start-group ARCHIVES --end-group'

ARCHIVES应当是一个关于档案文件的列表.它们可以是显式的文件名,或者'-l'选项。这些指定的档案文件会被多遍搜索,直到没有新的无定义引用被创建。

通常,一个档案文件只会被搜索一次。但如果这个档案文件中的一个符号需要被用来解析一个档案中的目标引用到的无定义的符号,而这个符号在命令行上的后面某个档案文件中出现,连接器不能解析这个引用。把这些档案文件分组后,它们都可被反复搜索直到所有可能的引用都被解析了为止。

使用这个选项有一个很大的运行开销.只有在无法避免在多个档案文件中使用循环引用时才用它。

这是在工具链接的其它中:

这是在工具链接的库中:

这是指定放在makefile中,并且在—start-group外面,顺序为-lsecond

–lstatic,其中second中的函数引用,定义在static中:

这是指定放在makefile中,并且在—start-group外面,顺序为-lstatic

-lsecond:

由此可见,--start-group  ARCHIVES  --end-group,的确起到了多个档案文件中使用循环引用时,保证正确。如果不用它,那么链接的顺序一定是:先链接定义函数所在的库,在链接引用函数所在的库。

另外,链接库的方式我知道有两种:

直接使用绝对路径下的文件。比如:F:/workspace/6.1.3.2/platform/workspace/libsecond.a。

使用-l参数,比如-lsecond。

如果ld加了参数-non-static,那么默认的-lsecond,会优先搜索second.so,如果找不到会再搜索second.a。

相关文章

  • ld链接库

    ld链接库 `-( ARCHIVES-)'`--start-group ARCHIVES --end-group'...

  • ld链接库的顺序

    这次讲讲ld链接库,没想到吧,链接库时的顺序很重要,而为了让顺序不辣么重要,所有了解--start-group很重...

  • library not found for -lXXXXXXXX

    ld: library not found for xxxx 报错总体来说分为两类原因: 1 编译时找不到链接库报...

  • gcc编译安装时,报错 configure-stage1-tar

    问题原因:动态链接库中缺少libmpfr.so.1 解决办法:libmpfr.so.1的地址加到LD_LIBRAR...

  • 【转载】etc/ld.so.conf的使用说明 libcudn

    etc/ld.so.conf: 这个文件记录了编译时使用的动态链接库的路径。 默认情况下,编译器只会使用/lib和...

  • so库加载原理

    有关编译时so库加载的内容: /etc/ld.so.conf 此文件记录了编译时使用的动态链接库的路径,更直白的说...

  • Linux链接库

    动态链接库(共享链接库) 杂项 生成.o文件 生成.so 使用动态库 静态链接库 杂项 生成.a 查看.a 使用静态库

  • 不要犟

    LD说什么就是什么。不要犟。 即便是LD自己说要吃亏,也不要越俎代庖,否定LD,替LD着想。让LD沾光。 因为这样...

  • JNI的静态注册和动态注册,及输出乱码解决

    [TOC] clang 生成动态链接库 命令介绍 不同操作系统的动态链接库后缀不相同 Windows里动态链接库后...

  • 一切为了LD,为了LD的家人

    一切为了LD,就是什么都要想着LD,什么都要把LD放在前面考虑。 一切为了LD,为了LD的家人、亲人、孩子、妻子。...

网友评论

    本文标题:ld链接库

    本文链接:https://www.haomeiwen.com/subject/vxrtuxtx.html