如何知道链接器的类型
How to know type of a linker
我们如何知道我们的系统正在使用哪种类型的链接器(static/dynamic)?
是我们用过的库类型(static/dynamic)决定的还是有其他的?
您是项目的主人。因此,当您使用编译器链接器选项创建和设置构建配置时,您需要为代码创建宏定义并将其传递给具有其他选项的编译器。使用此宏识别代码中的库类型。
编译命令:
gcc -D LINK_STATIC a.cpp ...
代码:
#ifdef LINK_STATIC
... static implementation ...
#end
#ifdef LINK_DINAMIC
... dinamic implementation ...
#end
您的工具链(例如 GCC + GNU binutils)将提供 linker(例如 /usr/bin/ld)
您用于 link 程序(无论是静态、动态还是混合
两者)当你建设他们。
您的操作系统将提供动态linker(例如/lib/ld-linux.so)
加载程序所需的共享库(如果有)并解析符号
引用在运行时,根据在
由 linker 在 构建时间 .
执行
我们如何知道我们的系统正在使用哪种类型的链接器(static/dynamic)?
是我们用过的库类型(static/dynamic)决定的还是有其他的?
您是项目的主人。因此,当您使用编译器链接器选项创建和设置构建配置时,您需要为代码创建宏定义并将其传递给具有其他选项的编译器。使用此宏识别代码中的库类型。
编译命令:
gcc -D LINK_STATIC a.cpp ...
代码:
#ifdef LINK_STATIC
... static implementation ...
#end
#ifdef LINK_DINAMIC
... dinamic implementation ...
#end
您的工具链(例如 GCC + GNU binutils)将提供 linker(例如 /usr/bin/ld)
您用于 link 程序(无论是静态、动态还是混合
两者)当你建设他们。
您的操作系统将提供动态linker(例如/lib/ld-linux.so) 加载程序所需的共享库(如果有)并解析符号 引用在运行时,根据在 由 linker 在 构建时间 .
执行