如何知道链接器的类型

时间:2016-03-02 17:48:52

标签: linker language-agnostic

我们怎么知道我们的系统使用哪种类型的链接器(静态/动态)?

是否决定了我们使用过的库类型(静态/动态)还是还有其他东西?

2 个答案:

答案 0 :(得分:0)

您是项目的主人。因此,当您使用编译器 - 链接器选项创建和设置构建配置时,您需要为代码创建宏定义并将其传递给具有其他选项的编译器。使用此宏来识别代码中的库类型。

编译器命令:

gcc -D LINK_STATIC a.cpp ...

代码:

#ifdef LINK_STATIC
  ... static implementation ...
#end

#ifdef LINK_DINAMIC
  ... dinamic implementation ...
#end

答案 1 :(得分:0)

您的工具链(例如GCC + GNU binutils)将提供链接器(例如/usr/bin/ld) 用于链接程序(无论是静态,动态还是混合) 当你构建它们时。

您的操作系统将提供动态链接器(例如/lib/ld-linux.so) 加载程序所需的共享库(如果有)并解析符号 引用在运行时,根据编码的信息 可由链接器构建时执行。