Можно ли объединить несколько dll в один с помощью cmake? - PullRequest
0 голосов
/ 18 января 2019

У меня есть проект 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, который я добавлю вместе с бинарными файлами моего проекта. Возможно ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...