Как изменить подсистему для сборки Meson C++ с помощью MSYS2 UCRT64?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как изменить подсистему для сборки Meson C++ с помощью MSYS2 UCRT64?

Сообщение Anonymous »

Я пытаюсь скомпилировать небольшой тестовый проект с использованием GTK3 внутри терминала MSYS2 UCRT64.
Программа компилируется нормально, но открывает терминал.
Мой meson.build содержит ключ-значение win_subsystem, но он, как и Meson, игнорирует его:

Код: Выделить всё

project('fm', 'cpp')
dependencies = [
dependency('gtk+-3.0')
]
executable('fm',
'main.cpp',
cpp_std: 'c++17'
win_subsystem: 'windows',
dependencies : dependencies
)

Код: Выделить всё

chris@apollo-asus UCRT64 ~/Desktop/fm
$ /ucrt64/bin/meson setup build
The Meson build system
Version: 1.6.1
Source dir: C:/msys64/home/chris/Desktop/fm
Build dir: C:/msys64/home/chris/Desktop/fm/build
Build type: native build
Project name: fm
Project version: undefined
C++ compiler for the host machine: c++ (gcc 14.2.0 "c++ (Rev2, Built by MSYS2 project) 14.2.0")
C++ linker for the host machine: c++ ld.bfd 2.43.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: YES (C:\msys64\ucrt64\bin/pkg-config.EXE) 2.3.0
Run-time dependency gtk+-3.0 found: YES 3.24.43
Build targets in project: 1

Found ninja-1.12.1 at C:\msys64\ucrt64\bin/ninja.EXE

chris@apollo-asus UCRT64 ~/Desktop/fm
$ /ucrt64/bin/meson compile -vC build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: C:\msys64\ucrt64\bin/ninja.EXE -C C:/msys64/home/chris/Desktop/fm/build -v
ninja: Entering directory `C:/msys64/home/chris/Desktop/fm/build'
[1/2] "c++" "-Ifm.exe.p" "-I." "-I.." "-IC:/msys64/ucrt64/include/gtk-3.0" "-IC:/msys64/ucrt64/include/pango-1.0" "-IC:/msys64/ucrt64/include/harfbuzz" "-IC:/msys64/ucrt64/include/cairo" "-IC:/msys64/ucrt64/include/freetype2" "-IC:/msys64/ucrt64/include/pixman-1" "-IC:/msys64/ucrt64/include/gdk-pixbuf-2.0" "-IC:/msys64/ucrt64/include/libpng16" "-IC:/msys64/ucrt64/include/webp" "-IC:/msys64/ucrt64/include/atk-1.0" "-IC:/msys64/ucrt64/include/fribidi" "-IC:/msys64/ucrt64/include/glib-2.0" "-IC:/msys64/ucrt64/lib/glib-2.0/include" "-fdiagnostics-color=always" "-D_GLIBCXX_ASSERTIONS=1" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O0" "-g" "-DLIBDEFLATE_DLL" -MD -MQ fm.exe.p/main.cpp.obj -MF "fm.exe.p/main.cpp.obj.d" -o fm.exe.p/main.cpp.obj "-c" ../main.cpp
[2/2] "c++"  -o fm.exe fm.exe.p/main.cpp.obj "-Wl,--allow-shlib-undefined" "-Wl,--start-group" "C:/msys64/ucrt64/lib/libgtk-3.dll.a" "C:/msys64/ucrt64/lib/libgdk-3.dll.a" "C:/msys64/ucrt64/lib/libz.dll.a" "C:/msys64/ucrt64/lib/libgdi32.a" "C:/msys64/ucrt64/lib/libimm32.a" "C:/msys64/ucrt64/lib/libshell32.a" "C:/msys64/ucrt64/lib/libole32.a" "C:/msys64/ucrt64/lib/libuuid.a" "C:/msys64/ucrt64/lib/libwinmm.a" "C:/msys64/ucrt64/lib/libdwmapi.a" "C:/msys64/ucrt64/lib/libsetupapi.a" "C:/msys64/ucrt64/lib/libcfgmgr32.a" "C:/msys64/ucrt64/lib/libhid.a" "C:/msys64/ucrt64/lib/libwinspool.a" "C:/msys64/ucrt64/lib/libcomctl32.a" "C:/msys64/ucrt64/lib/libcomdlg32.a" "C:/msys64/ucrt64/lib/libpangowin32-1.0.dll.a" "C:/msys64/ucrt64/lib/libpangocairo-1.0.dll.a" "C:/msys64/ucrt64/lib/libpango-1.0.dll.a" "C:/msys64/ucrt64/lib/libharfbuzz.dll.a" "C:/msys64/ucrt64/lib/libatk-1.0.dll.a" "C:/msys64/ucrt64/lib/libcairo-gobject.dll.a" "C:/msys64/ucrt64/lib/libcairo.dll.a" "C:/msys64/ucrt64/lib/libgdk_pixbuf-2.0.dll.a" "C:/msys64/ucrt64/lib/libgio-2.0.dll.a" "C:/msys64/ucrt64/lib/libgobject-2.0.dll.a" "C:/msys64/ucrt64/lib/libglib-2.0.dll.a" "C:/msys64/ucrt64/lib/libintl.dll.a" "-Wl,--subsystem,console" "-lkernel32" "-luser32" "-lgdi32" "-lwinspool" "-lshell32" "-lole32" "-loleaut32" "-luuid" "-lcomdlg32" "-ladvapi32"  "-Wl,--end-group"
В конце есть "-Wl,--subsystem,console", который, насколько я могу судить, должен быть --subsystem,windows вместо этого.
Я нашел, как отключить окно консоли в Windows? но он использует устаревший (и не работающий) gui_app: true.
Я также пытался установить cpp_link_args, но безуспешно.
Мой исходный код можно найти здесь: https://github.com/cwansart/fm/blob/cpp ... eson.build
Что мне здесь не хватает? Как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ys2-ucrt64
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Запуск: «F:\code_software\msys2\ucrt64\bin\g++.exe» --interpreter=mi g++.exe: ошибка: нераспознанный параметр командной
    Anonymous » » в форуме C++
    0 Ответы
    87 Просмотры
    Последнее сообщение Anonymous
  • Скомпилированное исполнение MSYS2/UCRT64 не выводит в STDOUT/STDERR в PowerShell/CMD
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Скомпилированное исполнение MSYS2/UCRT64 не выводит в STDOUT/STDERR в PowerShell/CMD
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Что я могу сделать, чтобы подключить подсистему Windows для Android после версии 2306.40000.4.0?
    Гость » » в форуме Android
    0 Ответы
    23 Просмотры
    Последнее сообщение Гость
  • Как отладить подсистему KVM?
    Гость » » в форуме Linux
    0 Ответы
    23 Просмотры
    Последнее сообщение Гость

Вернуться в «C++»