diff --git a/content/posts/fltk-msys2-cmake/index.md b/content/posts/fltk-msys2-cmake/index.md index 0f1aa30..9982312 100644 --- a/content/posts/fltk-msys2-cmake/index.md +++ b/content/posts/fltk-msys2-cmake/index.md @@ -139,14 +139,14 @@ cd /d/code Пробуем собрать наше приложение. Меня в первую очередь интересовала статическая сборка, когда все зависимости интегрируются в один исполняемый файл. ```bash -g++ main.cpp -o main.exe -O2 -DWIN32 -static -static-libgcc -static-libstdc++ -lfltk -lole32 -luuid -lcomctl32 -mwindows +g++ main.cpp -o main.exe -O2 -DWIN32 -static -lfltk -lole32 -luuid -lcomctl32 -mwindows ``` **-DWIN32** – указываем FLTK, что мы под Windows. -**-mwindows** – убираем чёрное окошко у приложения и подключаем некоторые системные библиотеки. +**-mwindows** – убираем чёрное окно команд у приложения и подключаем некоторые системные библиотеки. -**-static -static-libgcc -static-libstdc++** – статическая сборка, включить системные библиотеки в статическую сборку. +**-static** – статическая сборка. **-lfltk -lole32 -luuid -lcomctl32** – подключение необходимых библиотек. @@ -189,10 +189,15 @@ project(fltk-app) option(STATIC_BUILD "Enable static build" ON) # Конфигурируем статическую сборку для mingw -if(STATIC_BUILD AND MINGW) - set(BUILD_SHARED_LIBS OFF) - set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") - set(CMAKE_EXE_LINKER_FLAGS "-static -mwindows") +if(MINGW) + if(STATIC_BUILD) + set(BUILD_SHARED_LIBS OFF) + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") + endif() + + # Отключаем окно команд + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows") endif() # Ищем библиотеку fltk в системе