Вопрос о размере после компиляции
У меня есть набор файлов. Скомпилировано с gcc49 под FreeBSD. Makefile по умолчанию, созданный мной. Ну, это не проблема.
Хорошо, я решил скомпилировать с CMake.
- При компиляции со стандартными make-файлами (gcc49) целевой размер вывода составляет: 5 МБ
- При компиляции с помощью cmake(gcc49, те же флаги, что и в файле по умолчанию для make-файла), выходная цель: 12 МБ
Мой вопрос, почему такие большие различия в размерах.
Я хочу, чтобы файл заканчивался, чтобы был как маленький размер, это было нормально 5 МБ.
Что я должен сделать, чтобы сделать мой файл 5 МБ (с помощью cmake)
THX все
2 ответа
В обоих случаях вы вызываете компилятор с разными параметрами.
CMake уже устанавливает кучу опций компилятора и компоновщика, которые лучше всего подходят для вашего проекта. К сожалению, если вы новичок в CMake, не всегда очевидно, почему устанавливается конкретный параметр и как идиоматически его менять.
Для генератора Makefile, чтобы узнать, какие параметры CMake передает компилятору, вы можете установить VERBOSE
переменная окружения при вызове make
на оболочке:
$ VERBOSE=1 make
Сравните команды, используемые CMake, с командами, которые вы используете при сборке вручную. После того, как вы определили виновника, проведите дальнейшие исследования о том, как лучше всего изменить этот конкретный вариант сборки с помощью CMake.
CMake создает конфигурацию отладки по умолчанию. Если вы не переключились на выпуск, двоичные файлы будут собраны как отладочные, что приведет к увеличению размера.
Вы можете протестировать снова релиз, например:
cd release_dir
cmake -DCMAKE_BUILD_TYPE=Release ..
make