繁体   English   中英

静态和动态库

[英]Static and Dynamic Libraries

我正在使用SFML,我正在使用Code :: Blocks和mingw32构建一个应用程序。 我已经将SFML库(sfml-whatever.a)添加到我的项目中,并且运行良好。

但是iIrc,静态库被“编译”到可执行文件中。 如果是这样,那么为什么我必须将所有SFML DLL放在可执行文件旁边才能在Code :: Blocks之外的任何地方运行? 如果我以某种方式“动态地将DLL”从Code :: Blocks中链接到我的项目中,(我不知道该怎么做),我是否还需要发送包含所有.a文件的可执行文件运行正常吗?

在此先感谢,我不太熟悉库,静态或动态。 如果它有任何区别,我正在使用Ubuntu linux,我正在使用mingw32进行交叉编译。

使用SFML,您可以静态链接到他们的库,如上面的注释中所述。 这种方式将其全部编译成可执行文件,您不需要将其与DLL一起发送。 如何完成取决于您使用的是SFML 1.6还是2.0。

1.6不需要任何预处理器定义,但2.0要求您使用cmake为编译器构建解决方案/生成文件,然后在预处理器定义中#define SFML_STATIC

在这种情况下,静态库只包含与动态库接口的代码,它不是实际的库代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM