2012-03-19 2 views
1

Если я выпускаю программу, построенную в рамках интервала QT:Нужны ли мне все nokia qt DLL?

1) Как узнать, какие DLL файлы мне нужно включать

2) Должен ли я включить DLL файлы или код компилируется в EXE

Программа очень проста, просто интерфейс с двумя текстовыми полями и кнопкой.

Я просто не хочу иметь 5 МБ в QT DLL для 100KB EXE-файла.

ответ

1

Если вы не связываете статически (для чего требуется статический Qt, который вам нужно построить из исходного кода), вам необходимо отправить DLL. Чтобы узнать, какие DLL необходимы, вы можете использовать что-то вроде Dependency Walker или проверить линию ссылок при компиляции/в сгенерированном Makefile. Обычно его QtCore, QtGui и все, что вы настроили в явном виде в файле .pro, как CONFIG += xml, CONFIG += webkit или CONFIG += network т.д.

Несколько MBs я бы ожидать в любом случае, даже если ваш собственный код всего лишь несколько KB (его всего несколько килобайт, потому что Qt делает все тяжелые подъемы, в конце концов).

+0

Хорошо, спасибо. –

0

Если вы связываете статические библиотеки в свой исполняемый файл, вам не нужны библиотеки DLL.

Если вы связываете общие библиотеки в свой исполняемый файл, вам понадобятся библиотеки DLL.

Вы можете указать, с какими из них вы хотите компилировать, если вы посмотрите на командную строку и посмотрите/MT или/MD для статического и общего доступа соответственно.

Если лицензия позволяет включать статические библиотеки, это, как правило, гораздо более простое решение.