gpt4 book ai didi

c - gcc 链接器不会自动包含依赖库

转载 作者:太空宇宙 更新时间:2023-11-04 03:22:17 28 4
gpt4 key购买 nike

我正在将 arm 交叉编译器从 4.3.3 更新到 4.9.4。我看到的一个问题是新编译器不再自动包含依赖库。例如:

gcc ... -L -l -lssl -lrt

在以前的编译器上工作正常。如果 libssl 需要引用 libcrypto 中的某些内容,那么链接器将自动查找并链接到 libcrypto(不需要 -lcrypto)。

使用新的编译器,这仍然有效,但前提是 libssl 不引用 libcrypto 中的任何内容。如果是,则需要 -lcyrpto。同样的问题也适用于 -lpthread、-ldl 等。

这是 gcc 行为的变化还是在构建 gcc 时配置不正确?

最佳答案

您使用的是静态库还是动态库?对于动态库,如果libssl依赖于libcrypto,则不需要显式链接-lcrypto,只要libssl 本身已正确链接,但如果您想在程序中直接使用 libcrypto 中的符号,则必须显式链接它。这是较新版本的 binutils 中的更改/有意回归。

关于c - gcc 链接器不会自动包含依赖库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44377700/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com