创建静态库和导入代码有什么区别?

时间:2013-12-05 20:06:28

标签: c microcontroller lpc

我想知道有什么区别,还有什么更好,用我需要的通用代码创建一个静态库,或者只是将文件导入到项目中。

3 个答案:

答案 0 :(得分:1)

使用库,您可以分发没有源代码的代码。如果您有源代码,那么您的编译器就有机会优化该代码。

“更好”取决于您的标准。

答案 1 :(得分:1)

嵌入式项目的另一个不同之处在于您可能希望使用不同的项目设置来编译库,因此这将是一个优势。但是,如果所有源都在项目中,优化器可能能够使用寄存器来传递变量等。

嵌入式编译器可能非常可怕,有时您需要手动提供它们。 (我记得有一个8051 c编译器甚至不会进行常量表达式折叠,uggh。)

答案 2 :(得分:0)

你的意思是手动移动代码?我认为区别在于链接期间,编译器优化略有不同。静态库本质上是“在暴露的代码上复制”,这在编译期间发生。

这对我来说更像是一种代码重用方式。另一方面,动态库更复杂和灵活,因为函数仅在运行时调用。因此,与使用完全相同的源的静态库编译的程序相比,与动态库链接的程序具有更少的二进制信息。我不久前做了比较。

是的,Scott在代码分发方面绝对正确。