大家,我开始开发一个C ++项目,在这个项目中我必须使用一些开源项目有几个dll文件。 然后我有一个问题“如何build立C ++项目embedded到exe文件中的所有dynamic链接库? 感谢您的帮助!
注意:对不起,我忘了我在x86上使用visual studio编译器
你的问题没有一般的答案。 这取决于你是否需要它跨平台或没有。
不过,既然你提到“x86上的visual studio编译器”,我敢打赌你是针对Windows的。 在这种情况下,你有两个选择:
官方和推荐的方式:将你的DLL作为资源嵌入到你的可执行文件中; 那么当你的程序启动时,你将这些dll提取到磁盘上的某个地方作为临时文件(注意文件权限),然后使用LoadLibrary
+ GetProcAddress
骇客的方式:编写一个PE可执行程序加载程序,以规避Windows API只能从磁盘上的文件提供LoadLibrary
的方法。 通过编写自己的PE加载器,您将能够直接从内存流中加载dll。 再说一遍,我只是提到它的参考,但绝不是应该做的
最后,您需要遵守您正在使用的开源项目所选择的许可证。 我的答案提供了关于如何实现您的目标的技术指导; 这并不意味着您正在使用的项目的许可证允许您这样做。