Как уменьшить вес сборки в CLion

143
30 октября 2018, 09:20

Здравстуйте. Есть необходимость собрать проект весом не более 1 мб, но 1 класс в проекте весит около 13мб. Так вот, что я могу сделать, что бы exe у меня был весом не более 1 мб?

Answer 1

CLion 2017.3, msys64/mingw32, w64 5.0, тестовый проект с одним классом:

#include <iostream>
class Foo {
public:
    void bar() {
        std::cout << "bar\n";
    }
};
int main() {
    Foo foo;
    foo.bar();
    return 0;
}

После сборки на выходе получаем исполняемый файл размером 379кб.

Добавляем (в CMakeLists.txt) флажок компилятора -s (убирает символы из исполняемого файла, отлаживать станет проблематично):

set(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -s")

После сборки получаем исполняемый файл размером 17кб.

Упаковываем полученный exe с помощью UPX:

upx.exe foo.exe

Получаем исполняемый файл размером всего 9кб.

Дополнительно можно задать компилятору ключ оптимизации по размеру: -Os, но для этого простого примера разница была несущественной.

READ ALSO
определение кодировки по переданному char* через WinApi

определение кодировки по переданному char* через WinApi

Подскажите, можно ли через WinApi определить кодировку переданной строки char* ? Мне нужно по переданной строке сравнивать является и она Utf8 или...

140
Как установить библиотеку curl на mac? - c++

Как установить библиотеку curl на mac? - c++

Возможно ли вообще использовать эту библиотеку на mac и как это сделать?

148
SDL 2 задать 4 координаты для картинки

SDL 2 задать 4 координаты для картинки

Возник вопрос по SDL2нужно сделать так чтобы картинку я мог вставить по 4 координатам(для того чтобы растягивать изменять пропорциию картинки...

177
Контроль ввода в QLineEdit

Контроль ввода в QLineEdit

Есть QLineEdit, в которое нужно вводить только вещественные значения(например, maxAccelerationValue)

189