2016-03-02 72 views
-2

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

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

回答

0

工具链(如GCC + GNU binutils的)将提供一个连接(如/usr/bin/ld) ,您使用当你是建筑物他们。

操作系统将提供一个动态链接程序(例如/lib/ld-linux.so),该 加载共享库(如果有的话)需要通过程序并解决符号引用 在运行时 ,根据编码 编码的信息,链接器可执行编译时间

+0

谢谢!对不起,不能提高你的答案,因为声誉较低......再次感谢! – Hiren

+0

@DeadCode要[接受答案](http://stackoverflow.com/help/accepted-answer),请点击绿色选中标记。 –

0

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

编译器命令:

gcc -D LINK_STATIC a.cpp ... 

代码:

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

#ifdef LINK_DINAMIC 
    ... dinamic implementation ... 
#end 
相关问题