From 722cea5036997ad15ed91340622a1cd8b2342130 Mon Sep 17 00:00:00 2001 From: MultiMote Date: Sat, 7 Jan 2023 19:36:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D1=82=D0=B0=D1=82=D1=8C=D0=B8=20?= =?UTF-8?q?=D0=BE=20fltk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/posts/fltk-msys2-cmake/index.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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 в системе