У меня есть проект в Code :: Blocks, который использует использует динамическую библиотеку и будет использовать больше в будущем. Я правильно настроил проект для использования библиотеки, и он компилируется и работает отлично.
Тем не менее, мне интересно, есть ли способ скомпилировать версию exe с dll, необходимыми в папке рядом с ней. (Я бы предпочел не охотиться на них и не копировать/вставлять их.) Я чувствую, что я что-то упускаю, или делаю это неправильно.
Есть ли в любом случае, чтобы Code :: Blocks делал это или лучший способ получить простой в распространении zipfile/project?
Как я могу использовать make файлы (желательно cmake, но любой тип, совместимый с Windows, был бы замечательным), чтобы это сделать?
CodeBlocks предлагает возможность выполнять операции до или после сборки. "Оформить заказ" Project-> "Параметры сборки", а на вкладке "Pre/Post build" вы можете вставить любую команду оболочки, которую вы хотите. Например:
При нажатии F9 вы увидите:
-------------- Build: Release in aaa (compiler: GNU GCC Compiler)---------------
Target is up to date.
Running target post-build steps
echo "Hi"
Hi
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)
Таким образом, вы можете добавить здесь любую команду, которую хотите собрать вместе с файлами, например, что-то вроде (используя 7-zip):
7z a my_archive.zip myfile1.exe myfile2.dll readme.txt
Имейте в виду, что это будет выполняться при каждой сборке, которая вам не нужна: при компиляции незначительных изменений в программе вы не хотите ждать программы архива. Так что, возможно, сделайте это только в специальной задаче сборки.