Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
20 / 15 / 6
Регистрация: 09.10.2021
Сообщений: 263

Как подключить при компиляции из терминала (консоли) linux дополнительные библиотеки?

11.01.2022, 14:31. Показов 3587. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Так, компилирую свои исходные коды на c++ на ubuntu в консоли через g++
g++ -o main main.cpp $(pkg-config --cflags --libs gtk4)
В данный момент я хочу скомпилировать и запустить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <gtkmm.h>
 
int main(int argc, char *argv[])
{
  auto app =
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");
 
  Gtk::Window window;
  window.set_default_size(200, 200);
 
  return app->run(window);
}
Пакет gtkmm-3-dev устанавливается в ubuntu, так apt-install libgtkmm-3.0-dev.
1)Но, как компилировать через g++ с пакетом gtkmm-3 ?
2) Как компилировать с несколькими библиотеками (пакетами)?

Все это на ubuntu 21.04.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2022, 14:31
Ответы с готовыми решениями:

Как для Google Play разрабатывать приложения/игры из консоли (терминала) linux?
Как для Google Play разрабатывать приложения/игры из консоли (терминала) linux?

После компиляции дополнительные библиотеки появляются в папке с таким же названием как в проекте
На скриншоте видно, что я убрал все дополнительные библиотеки в папку Libraries, чтобы не захламлять весь проект. Как сделать так, чтобы...

Как скомпилировать "hello world под xfce" на linux из терминала (консоли)?
Исходные коды Hello World реально написать на java в простом mousepad на linux? И как, потом, скомпилировать этот &quot;hello world под...

8
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,073
Записей в блоге: 18
11.01.2022, 14:43
Точно так же:
Code
1
pkg-config --libs --cflags gtkmm-3.0
Но лучше нарисовать Makefile. А еще лучше - использовать cmake, там все необходимое для поиска библиотек в разных местах есть.

P.S. А что за чудо такое "gtk4"? Не существует же такого пакета!
0
20 / 15 / 6
Регистрация: 09.10.2021
Сообщений: 263
11.01.2022, 14:47  [ТС]
Библиотека подключилась, но выдает ошибку, в исходных кодах:
main.cpp:1:9: fatal error: gtkmm: No such file or directory
1 | #include<gtkmm>
| ^~~~~~~
compilation terminated.
но странно, я же её установил на свою ubuntu 21.04, так:
apt-install libgtkmm-3.0-dev
Может быть, нужноо как-то специально прописать в исходный кодах, путь к gtkmm ?
Что я сделал неправильно?
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,073
Записей в блоге: 18
11.01.2022, 14:51
У меня сразу же заработало:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ishtar> 11.01, 14:50 /tmp
g++ 1.cpp $(pkg-config --libs --cflags gtkmm-3.0)
ishtar> 11.01, 14:50 /tmp
cat 1.cpp
#include <gtkmm.h>
 
int main(int argc, char *argv[])
{
  auto app =
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");
 
  Gtk::Window window;
  window.set_default_size(200, 200);
 
  return app->run(window);
}
В бубунте все через одно место: может, нужно еще какой-нибудь пакет вроде gtkmm-headers установить?
0
20 / 15 / 6
Регистрация: 09.10.2021
Сообщений: 263
11.01.2022, 15:11  [ТС]
Все разобрался, надо было писать так:
C++
1
#include <gtkmm.h>
Добавлено через 4 минуты
Но при запуске,этих исходных кодов, из терминала (консоли) linux (xubuntu 21.04), в консоли пишутся следующие ошибки:
user@myPC:~$ ./main

(process:39732): GLib-GObject-WARNING **: 18:55:52.593: cannot register existing type 'GtkWidget'

(process:39732): GLib-GObject-WARNING **: 18:55:52.593: cannot add class private field to invalid type '<invalid>'

(process:39732): GLib-GObject-WARNING **: 18:55:52.593: cannot add private field to invalid (non-instantiatable) type '<invalid>'

(process:39732): GLib-GObject-CRITICAL **: 18:55:52.593: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(process:39732): GLib-GObject-WARNING **: 18:55:52.593: cannot register existing type 'GtkBuildable'

(process:39732): GLib-GObject-CRITICAL **: 18:55:52.593: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed

(process:39732): GLib-CRITICAL **: 18:55:52.593: g_once_init_leave: assertion 'result != 0' failed

(process:39732): GLib-GObject-CRITICAL **: 18:55:52.593: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(process:39732): GLib-GObject-CRITICAL **: 18:55:52.593: g_type_register_static: assertion 'parent_type > 0' failed

(process:39732): GLib-GObject-WARNING **: 18:55:52.593: cannot add private field to invalid (non-instantiatable) type '<invalid>'

(process:39732): GLib-CRITICAL **: 18:55:52.593: g_once_init_leave: assertion 'result != 0' failed

(process:39732): GLib-GObject-CRITICAL **: 18:55:52.593: g_type_register_static: assertion 'parent_type > 0' failed

(process:39732): GLib-GObject-WARNING **: 18:55:52.593: cannot add private field to invalid (non-instantiatable) type '<invalid>'
Я понимаю, что нужно к компиляции как-то подключить еще GtkWidget, GtkBuildable и другие подобные библиотеки...пробую добавить в код строку:
C++
1
#include <gtk/gtk.h>
не помогает..

Добавлено через 13 минут
Вот, проверил версю xfce
xfce4-panel 4.16.3 (Xfce 4.16)

Copyright (c) 2004-2011
The Xfce development team. All rights reserved.
и версию xubuntu
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.10
Release: 21.10
Версия gtk
Version: 3.24.30-1ubuntu1
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,073
Записей в блоге: 18
11.01.2022, 15:43
А у gtk+ develop-пакеты установлены?
dbus запущен?
0
20 / 15 / 6
Регистрация: 09.10.2021
Сообщений: 263
11.01.2022, 16:05  [ТС]
My version of gtk4-dev is :
libgtk-4-dev is already the newest version (4.4.0+ds1-5)
Dbus установлен, он в ubuntu последних версий сразу установлен.

Добавлено через 12 минут
P.S. А что за чудо такое "gtk4"? Не существует же такого пакета!
libgtk-4-dev is already the newest version (4.4.0+ds1-5)
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,073
Записей в блоге: 18
11.01.2022, 16:23
А, вот где собака порылась! GTK установлен третий, а GTK-dev — четвертый.
0
20 / 15 / 6
Регистрация: 09.10.2021
Сообщений: 263
11.01.2022, 16:37  [ТС]
Установил следующие официальные пакеты с официального репозитория ubuntu 21.10 packages.ubuntu.com:
apt install libdbusmenu-gtk3-dev
apt install libunity-gtk3-parser-dev
apt install libwxgtk3.0-gtk3-dev
apt install libgtk3.0-cil-dev
apt install libghc-gtk3-dev
Не помогает, ошибки теже.

Теоретически, должен быть один пакет gtk3-dev, gtk3 и gtk4-dev, gtk4 .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2022, 16:37
Помогаю со студенческими работами здесь

С чего начать разработку приложения для Google Play из консоли (терминала) linux?
Нет возможности использовать для &quot;разработки приложений для Google Play&quot; программу Android Studio. С чего начать разработку приложения для...

Открыть вторую и третью консоль из первого терминала. Закрыть первую и третью консоли из под второго терминала
Открыть вторую и третью консоль из первого терминала. Закрыть первую и третью консоли из под второго терминала.

Как из консоли (терминала) ubuntu создать пакет?
#include &lt;gtk/gtk.h&gt; static void activate(GtkApplication *app, void *user_data) { GtkWidget *window =...

Как вывести результат терминала (консоли) в текстовый файл?
Как в c++ в linux вывести результат терминала (консоли)команды в текстовый файл?

как обойти ошибку компиляции Compile error при объявлении события для несуществующей библиотеки?
Доброго времени суток, уважаемые форумчане! Поиск в интернете и вопрос на другом форуме результатов не принес. Может, кто подскажет выход...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru