У меня есть проект 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/
Так что при компиляции openssl с помощью nmake он выдает: ssleay32.dll, libeay32.dll. Компиляция rabbitqm-c
с помощью cmake дает дополнительную librabbitqm.dll.
Затем компиляция SimpleAmqpClient с помощью cmake дает дополнительно SimpleAmqpClient.dll. В конце концов, когда я запускаю свой проект верхнего уровня, он спрашивает обо всех этих библиотеках. Поэтому мне нужно получить все эти библиотеки DLL и положить их с моими двоичными файлами. Это не очень удобно, особенно если вы хотите после запуска cmake, чтобы ваше приложение могло запускаться автоматически без дополнительных усилий
И что бы я хотел - всего лишь один файл верхнего уровня SimpleAmqpClient.dll, который я добавлю вместе с бинарными файлами моего проекта. Возможно ли это?