gpt4 book ai didi

c - 我需要为编译器指定一个间接使用的库吗?

转载 作者:行者123 更新时间:2023-11-30 16:39:34 25 4
gpt4 key购买 nike

如果 C 程序使用库 A(.a.so),并且库 A > 使用另一个库B(.a.so),当我编译C程序时,是否必须指定路径库B的头文件和库文件到诸如gcc之类的编译器?

谢谢。

最佳答案

do I have to specify the path to the header

这取决于库 A 的头文件 (#include) 是否包含包含库 B 的头文件的 #include 行。

大多数库的开发人员都试图避免这种情况,因此如果您没有库 B 的头文件,您甚至可以使用库 A!

(这当然意味着您不必指定头文件的路径。)

and the library file of library B to a compiler such as gcc?

  • 如果库 A 是静态库 (.a),则必须指定库 B:

    库 B 是静态 (.a) 还是共享 (.so) 并不重要。但是,如果库 B 是静态的 (.a) 并使用库 C,您还必须指定库 C。如果库 C 使用库 D...

  • 如果库 A 是共享库 (.so),则取决于所使用的操作系统:

    • 使用非常非常古老的 Linux 变体(1990 年代末),您必须指定库 B(和库 C ...)。

    • 也许仍然有操作系统具有这种行为。

    • 在最新的 Linux 变体中,如果库 A 是共享库,则不必指定库 B。对于(所有版本?)Windows 也是如此。

关于c - 我需要为编译器指定一个间接使用的库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995641/

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