我有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,它将与我的项目的二进制文件一起放入。有可能吗?