是否可以使用cmake将多个dll合并为一个?

时间:2019-01-18 10:30:21

标签: c++ dll merge cmake

我有C ++项目,我需要将其链接到其他一些项目作为子项目(每个子项目都由其他子项目组成,依此类推)。每个子项目都编译为DLL。是否可以将所有低级别的DLL组合到顶级级别之一,以避免启动项目所必需的大量DLL?

例如

我有一些依赖于SimpleAmqpClient项目https://github.com/alanxz/SimpleAmqpClient的项目。 SimpleAmqpClient项目也依赖于Rabbitmq-c项目https://github.com/alanxz/rabbitmq-c。 Rabbitmq-c项目取决于openssl项目https://www.openssl.org/source/

因此,使用nmake编译openssl时,它会给出:ssleay32.dll,libeay32.dll。使用cmake编译rabbitqm-c会产生更多librabbitqm.dll。

然后使用cmake编译SimpleAmqpClient会另外提供SimpleAmqpClient.dll。最终,当我运行顶层项目时,它会询问所有这些dll。因此,我需要获取所有这些DLL,并将其与我的二进制文件放在一起。并不是很方便,尤其是当您希望在cmake启动后希望您的应用程序可以自动启动而无需其他麻烦时

我所希望的-仅是一个顶层SimpleAmqpClient.dll,它将与我的项目的二进制文件一起放入。有可能吗?

0 个答案:

没有答案