2015-07-19 3 views
0

Прошу простить любую нетехническую терминологию, так как я очень новичок в разработке программного обеспечения и все еще пытаюсь обернуть голову тем, как работают библиотеки и используются.Как создать приложение wxWidgets без внешних зависимостей?

Я использую Linux Mint 17.1 с Cinnamon Desktop.

Я загрузил исходный код для WxWidgets в локальную папку проекта, а затем сделал следующим образом (из каталога базы WX):

  • MkDir buildgtk
  • кд buildgtk
  • ../configure --with-GTK
  • сделать

(Эти инструкции, приведенные в install.txt, который поставляется с wxWidge ts). В первый раз, когда я попытался это сделать, я получил ошибку, заявив, что файлы разработки GTK + не найдены. Я использовал:

Sudo APT-получить установку libgtk2.0-DEV

, чтобы получить их, а затем повторно установку. На этот раз это сработало. Однако во время выполнения команды «make» (что привело к очень большому количеству кода, проходящего через терминал, очень быстро, поэтому у меня не было времени на копирование точных фраз) было отображено несколько элементов, которые выглядели примерно так:

(имяOfPackage) из где? (sys)

или что-то в этом роде. Например, я считаю, что пакет PNG, пакет JPEG и некоторые другие материалы извлекаются из «sys», которые, как я полагаю, означает, что он вытаскивает из разделяемых библиотек на моем компьютере.

Если я хочу создать действительно портативное приложение, как я могу скомпилировать библиотеку wxWidgets, не включая все эти внешние зависимости? Любая помощь очень ценится, поскольку я все еще пытаюсь понять все тонкости процесса компиляции, объектные файлы и т. Д.

ответ

0

Вы не сможете полностью связать статически. И если вы не свяжете GTK + самим статически (что не рекомендуется по техническим причинам, а также имеет последствия для лицензирования), вы также не должны связывать libpng, используемый GTK статически.

Для других библиотек, например. regex, expat, lib{jpeg,tiff}, вы можете использовать опцию конфигурации --with-xxx=builtin, чтобы статически ссылаться на версию в комплекте с wxWidgets.

На практике обычным решением является просто построение на довольно старой системе, так как все новые будут совместимы с ним.

P.S. Конфигурационный вывод хранится в config.log, вы также можете использовать буфер прокрутки терминала, чтобы увидеть результат, который прошел слишком быстро. И, конечно же, вы всегда можете перенаправить вывод configure на tee(1), а затем используйте less, чтобы просмотреть его более комфортно.

Смежные вопросы