谁能给我解释一下,在gcc(makefile)中,共享库和静态库有什么不同?
我读到静态库是独立的代码,但它增加了可执行文件的大小
但是,虽然共享库动态地链接函数,但它不会增加可执行文件的大小
我不能理解这两者之间的区别。
谁能告诉我什么时候应该创建静态库,什么时候应该创建共享库。
他们说共享库是一个位置相关的代码
我们所说的位置相关代码是什么意思?
如果共享库不会增加代码,如果静态库增加了代码大小,那么我们可以选择共享库。
但是为什么我们也有静态库,它的真正用途是什么?
请帮帮我伙计们
发布于 2011-06-24 20:43:23
缺点:链接共享库不仅会增加可执行文件的大小,还会加载每个可执行文件。如果您在多个可执行文件中使用该库,那么它将在内存中多次出现。
依赖于位置的代码意味着,在创建库时,库在内存中的确切位置是未知的,因此只有相对内存寻址可用(例如:从该指令跳到+50字节,然后从那里执行)
https://stackoverflow.com/questions/6467892
复制相似问题