1

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

4

3 回答 3

1

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

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

于 2013-12-05T20:09:55.260 回答
1

嵌入式项目的另一个区别是您可能希望使用不同的项目设置来编译库,这将是一个优势。但是,如果所有源都在项目中,优化器可能能够通过使用寄存器来传递变量等做更多的事情。

嵌入式编译器可能非常糟糕,有时您必须手动喂它们。(我记得有一个 8051 c 编译器甚至不会进行常量表达式折叠,呃。)

于 2013-12-05T20:17:25.117 回答
0

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

对我来说,它更像是一种代码重用形式。另一方面,动态库更加复杂和灵活,因为函数仅在运行时调用。因此,与使用完全相同源的静态库编译的程序相比,与动态库链接的程序在二进制文件中的信息更少。前段时间我自己比较过。

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

于 2013-12-05T20:12:26.623 回答