Kee*_*elx 3 c++ static dynamic libraries sfml
我正在使用SFML,我正在使用Code :: Blocks和mingw32构建一个应用程序.我已经将SFML库(sfml-whatever.a)添加到我的项目中,并且运行良好.
但是iIrc,静态库被"编译"到可执行文件中.如果是这样,那么为什么我必须将所有SFML DLL放在可执行文件旁边才能在Code :: Blocks之外的任何地方运行?如果我以某种方式"动态地将DLL"从Code :: Blocks中链接到我的项目中,(我不知道该怎么做),我是否还需要发送包含所有.a文件的可执行文件运行正常吗?
在此先感谢,我不太熟悉库,静态或动态.如果它有任何区别,我正在使用Ubuntu linux,我正在使用mingw32进行交叉编译.
小智 6
使用SFML,您可以静态链接到他们的库,如上面的注释中所述.这种方式将其全部编译成可执行文件,您不需要将其与DLL一起发送.如何完成取决于您使用的是SFML 1.6还是2.0.
1.6不需要任何预处理器定义,但2.0要求您使用cmake为您的编译器构建解决方案/ makefile,然后SFML_STATIC在预处理器定义中使用#define .