На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Visual Studio 2022 и GTK
    Установил msys2 на диск C, затем с помощью pacman установил поддержку GTK. В настройках тестового проекта указал директории с включаемыми файлами и библиотеками. Получаю очень много ошибок (синтаксические ошибки и отсутствие переменных в списке формальных параметров) . Подскажите, пожалуйста, как нужно правильно настроить проект для создания GTK-приложений. Лет 5 назад этот проект компилировался, но с какой-то другой библиотекой GTK, уже не помню какой. Проект прикрепил.
    Прикреплённый файлПрикреплённый файлvsGtkStudy.zip (3,34 Кбайт, скачиваний: 39)
      Starostin, немного маловато инфы - в какой среде собираешь и чем компилируешь. (Упс - невнимательно прочел тему :rolleyes: )
      Судя по содержимому архива - видать студией и мелкомягким компилятором.

      Давай по порядку:

      Прикреплённая картинка
      Прикреплённая картинка


      Как видишь - собралось. С либой GTK я не работал, поэтому сперва поставил GTK-4, но потом посмотрел по коду, погуглил - вижу функции GTK-3.
      Поставил нужные мне пакеты:

      ExpandedWrap disabled
        pacman -S mingw32/mingw-w64-i686-gtk3
        pacman -S mingw64/mingw-w64-x86_64-gtk3
        pacman -S glib2-devel

      Но я пользуюсь компиляторами GCC из комплекта mingw32. Если ты пользуешь мелкомяккий компилятор, то тебе нужно устанавливать другие тулчейны и либы, а именно:

      ExpandedWrap disabled
        pacman -S clang32/mingw-w64-clang-i686-gtk3
        pacman -S clang64/mingw-w64-clang-x86_64-gtk3
        pacman -S glib2-devel

      Я не помню под какую студию там собрано, вроде под 2019 (ADD: да, уточнил - 2019)

      Второй шаг. Для работы я пользую QtCreator и его систему сборки qmake. Для сборки этой программы я создал файл проекта TestGTK.pro следующего содержания:

      ExpandedWrap disabled
        TEMPLATE = app
        CONFIG += c++17
        CONFIG += link_pkgconfig
        CONFIG -= app_bundle
        CONFIG -= qt
         
        PKGCONFIG += glib-2.0 harfbuzz cairo pango gtk+-3.0
         
        SOURCES += \
                main.cpp

      В нем важная строка, которая начинается с "PKGCONFIG". Этой настройкой я указал системе сборки задействовать утилиту pkg-config, которая сама бегает по своим файлам и выясняет необходимые зависимости библиотек проекта: какие заголовочные файлы использовать, какие либы линковать. Осталось только в коде указать вместо относительного пути - абсолютный к файлу "window_main.glade". Ну, собственно, проект собрался и успешно запустился. Как в 32-битной, так и в 64-битной версии.

      Если нужна помощь как такое провернуть в студии - увы, не ко мне. Но вопросы задавай. Многие форумчане пользуют именно студию, уверен, помогут.
        Спасибо большое за ответ! Меня интересуют кроссплатформенные решения. Как я понимаю, VS2022 - не кроссплаформенный. Я раньше слышал про QTCreator и думал, что он может использоваться только с QT и не может использоваться с GTK. И о нем ничего не читал. Видимо, я сильно ошибся. Можете поделиться проектом, который Вы создали, для изучения возможностей QTCreator как кроссплатформенного средства?
        Сообщение отредактировано: tumanovalex -
          Цитата tumanovalex @
          Как я понимаю, VS2022 - не кроссплаформенный

          Как кросс-платформенная среда разработки - скорее нет. Я не встречал студию под другие платформы, отличные от виндовс. Хотя время идет, могу ошибаться. А вот как среда для кросс-платформенной разработки - вполне может быть. Там наверняка можно подключать другие тулчейны, отличные от родных. Уточни у форумчан.

          Цитата tumanovalex @
          Можете поделиться проектом, который Вы создали, для изучения возможностей QTCreator как кроссплатформенного средства?

          Да там всего два файла, второй уже есть в моем ответе выше. Но не вопрос, присоединю архив.

          Скрытый текст
          И это, давай на "ты" :rolleyes:

          Прикреплённый файлПрикреплённый файлTestGTK.7z (866 байт, скачиваний: 42)
            Спасибо! А почему ты выбрал QTCreator? Инструментов много (Visual Studio Code, NetBeans и другие). Вопрос задаю не просто так. Сейчас выбираю инструмент для кроссплатформенного программирования на С++. Интересует именно IDE, которая может запускаться в различных ОС. Я запутался в выборе, поэтому в первую очередь и обратил внимание на VS, в котором программировал на C и C#. Нужен совет опытных программистов (себя программистом не считаю, я не профессиональный программист, программирование для меня давнее увлечение).
              Цитата tumanovalex @
              Спасибо! А почему ты выбрал QTCreator?

              Вижуал студией, да и вообще мелкомягкими изделиями я не пользовался. Сначала плотно сидел на Borland C++ Builder, потом нужно было перескочить на что-то из разряда LGPL*, да еще и с полноценной современной STL. Заинтересовался Qt, ну а QtCreator - в нем родная среда разработки. Посмотрев настройки QtCreator'а, меня порадовала система настроек, особенно тулчейнов. Ну вот так и залип на этот QtCreator.

              Однако, к последнее время, все чаще задумываюсь перейти и для C/С++ на VSCodium. Но там сложнее - нужно потратить время, и с помощью дополнений запилить под себя удобное окружение. А в QtCreator'е - сразу все "из коробки".
                Спасибо за ответ. Попробую установить и поработать QT. А там видно будет.

                Добавлено
                Поработать пока не получилось - при попытки установить с помощью файла qt-unified-windows-x64-4.4.1-online.exe получил сообщение: "Installation from this IP address is not allowed". Включили санкции?

                Добавлено
                Я использовал обходной маневр, инсталляция началась, но потом получил сообщения, что инсталляция прервана. Это наводит на мысль, что QT в любой момент может для России обрубить концы. Лучше я попробую что-нибудь другое.
                  Цитата tumanovalex @
                  "Installation from this IP address is not allowed". Включили санкции?

                  Да, это санкции.

                  Цитата tumanovalex @
                  при попытки установить с помощью файла qt-unified-windows-x64-4.4.1-online.exe

                  Я последний раз под винду ставил вот отсюда: https://download.qt.io/official_releases/qt...ator/8.0/8.0.1/ и выбирал qt-creator-opensource-windows-x86_64-8.0.1.exe. Просто хотелось последнюю версию QtCreator'а. Да, из за санкций пришлось искать работающий (увы - платный) прокси-сервер и в установщике его прописывать.

                  Но тебе можно поступить проще. Поставь без заморочек просто из MSYS2. Установится версия QtCreator'а что-то вроде 7.*. Вообще молча установится, без каких-либо траблов:

                  ExpandedWrap disabled
                    pacman -S mingw64/mingw-w64-x86_64-qt-creator

                  Для начала работы - хватит выше крыши.
                    Я попробовал использовать рекомендуемый на gtk.org https://github.com/wingtk/gvsbuild. Все установилось без проблем, в директории C:\gtk-build\ появились заголовочные файлы, библиотеки и все нужное. Правда, я думал, что после этого в Visual Studio 2022 появится возможность выбрать проект GTK (т.е., как я понимаю, появится шаблон для GTK приложения). К сожалению, при создании нового проекта шаблона GTK+ не появилось. Может быть кто-нибудь подскажет, как настроить студию, чтобы такой шаблон был? Или нужно в консольном (пустом) приложении настраивать его параметры и указывать нужные пути?
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0351 ]   [ 22 queries used ]   [ Generated: 25.04.24, 17:20 GMT ]