|
|
1
31
静态库没有链接。它们只是对象文件(*.obj或*.o)的集合,这些文件一起归档到库文件中(有点像tar/zip文件),以便链接器更容易找到所需的符号。
如果您想使用链接器自动链接其他库,Stephen的建议会起作用,而且像boost和stlport这样的知名库也会使用它。为此,将pragma放在静态库的主头文件中。您应该包括静态库及其依赖项。
然而,在我看来,这个特性实际上是针对库编写器的,因为库位于系统库路径中,所以链接器很容易找到它。此外,在boost和stlport中,它们使用此功能支持相同库的多个版本,并使用定义的选项
我对应用程序代码的偏好是显式链接所需的部分。 |
|
|
2
7
#pragma comment (lib, "static.lib") 通过将pragma添加到头文件来简化链接其他文件的过程。 |
|
3
1
是的,例如,当您从静态库中调用windows函数时,它们通常来自某个动态库,所以应该没有区别。
有这样的依赖关系可能会在以后引起问题,我建议您改为使用动态加载库 LoadLibrary() ,这样您就不需要在编译/链接时跟踪这些依赖项。 |