Компиляция в Code :: Blocks с зависимостями

0

У меня есть проект в Code :: Blocks, который использует использует динамическую библиотеку и будет использовать больше в будущем. Я правильно настроил проект для использования библиотеки, и он компилируется и работает отлично.

Тем не менее, мне интересно, есть ли способ скомпилировать версию exe с dll, необходимыми в папке рядом с ней. (Я бы предпочел не охотиться на них и не копировать/вставлять их.) Я чувствую, что я что-то упускаю, или делаю это неправильно.

Есть ли в любом случае, чтобы Code :: Blocks делал это или лучший способ получить простой в распространении zipfile/project?

Как я могу использовать make файлы (желательно cmake, но любой тип, совместимый с Windows, был бы замечательным), чтобы это сделать?

  • 0
    Не знаю, предлагает ли CodeBlocks какой-то «крючок» для вставки скриптов, но как насчет make-файлов?
  • 0
    Честно говоря, я не очень хорошо разбираюсь в make-файлах - я бы не знал, с чего начать, кроме как поискать «учебники по CMake»! (Я использовал CMake раньше, и он установлен на моем компьютере.)
Показать ещё 1 комментарий
Теги:
dll
makefile
cmake
codeblocks

1 ответ

1
Лучший ответ

CodeBlocks предлагает возможность выполнять операции до или после сборки. "Оформить заказ" Project-> "Параметры сборки", а на вкладке "Pre/Post build" вы можете вставить любую команду оболочки, которую вы хотите. Например:

Изображение 174551

При нажатии 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

Имейте в виду, что это будет выполняться при каждой сборке, которая вам не нужна: при компиляции незначительных изменений в программе вы не хотите ждать программы архива. Так что, возможно, сделайте это только в специальной задаче сборки.

  • 0
    Спасибо вам большое! Я надеялся, что метод будет включать все необходимые DLL-файлы, так как есть (я полагаю) больше DLL-файлов, чем нужно поместить в папку проекта. Когда я копирую всю папку проекта в другое место и пытаюсь запустить exe-релиз, происходит сбой. Он говорит, что я пропускаю DLL, но когда я вставляю эту и другие связанные библиотеки, он жалуется, что мне не хватает libgcc_s_sjlj-1.dll. Возможно, я изначально задал неправильный вопрос, но как я могу решить эту проблему? Exe довольно бесполезно, если мне нужно использовать IDE для его запуска. Спасибо!
  • 0
    Итак, если я понимаю, вторая часть вопроса: «Как я могу получить список всех DLL, которые запрашиваются моим приложением?» ?. Я думаю, что этот ответ ответит на это. Дайте нам знать.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню