我是靠谱客的博主 可靠大白,最近开发中收集的这篇文章主要介绍gtk+3/gtkmm3导入简述安装示例源码 (命令编译)cmake构建官方API文档,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于Ubuntu 20.04

换源帮助

简述

gtk+是提供C语言接口, gtkmm是提供C++接口,且gtkmm依赖于gtk+

安装

# gtk+3/gtkmm3
sudo apt install libgtk-3-dev libgtkmm-3.0-dev
# 开发工具
sudo apt install build-essential cmake pkg-config
# gtk+版本查看
pkg-config --modversion gtk+-3.0

在这里插入图片描述

# gtkmm版本查看
pkg-config --modversion gtkmm-3.0

在这里插入图片描述

示例源码 (命令编译)

gtk+3

文件命名为 gtk_demo.c

/**
 * @file gtk_demo.c
 * @brief gtk+示例程序
 */
#include <gtk/gtk.h>

void activate (GtkApplication* app, gpointer user_data)
{
    (void)user_data;

    GtkWidget *window;

    window = gtk_application_window_new (app);
    gtk_window_set_title (GTK_WINDOW (window), "Window");
    gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
    gtk_widget_show_all (window);
}

int main (int argc, char **argv)
{
  GtkApplication *app;
  int status;

  app = gtk_application_new ("a-rounder.com", G_APPLICATION_FLAGS_NONE);
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
  status = g_application_run (G_APPLICATION (app), argc, argv);
  g_object_unref (app);

  return status;
}

编译生成二进制文件 demo

gcc gtk_demo.c -o demo `pkg-config --cflags --libs gtk+-3.0`

运行

./demo

在这里插入图片描述

gtkmm3

文件命名为gtkmm_demo.cpp

/**
 * @file gtkmm_demo.cpp
 * @brief gtkmm示例程序
 */
#include <gtkmm.h>

int main(int argc, char **argv)
{
  auto app = Gtk::Application::create(argc, argv, "a-rounder.com");

  Gtk::Window window;
  window.set_default_size(200, 200);

  return app->run(window);
}

编译生成二进制文件 demo

g++ gtkmm_demo.cpp -o demo `pkg-config --cflags --libs gtkmm-3.0`

运行

./demo

在这里插入图片描述

cmake构建

在这里插入图片描述

适用的项目文件结构:

  • 源码 .c 或 .cpp 放入 src 文件夹
  • 自定义头文件 .h 或.hpp 放入 include
  • cmake构建后会生成 bin 文件夹, 用于存放生成的二进制文件

gtk+

# 设置用于构建该项目的最低cmake版本
cmake_minimum_required(VERSION 3.1)

# 设置项目名称和编程语言
project(gtk_demo C)

# 寻找gtk的头文件和库文件
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)

# gtk头文件路径
include_directories(${GTK3_INCLUDE_DIRS})
# gtk库路径
link_directories(${GTK3_LIBRARY_DIRS})
# 自定义头文件路径
include_directories(include)
# 设置二进制文件生成路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 获取源码的路径
aux_source_directory(src src)

# 设置编译标准和额外参数
add_compile_options(-std=c11 -Wall -Werror -Wextra -pedantic -Wimplicit-fallthrough -Wsequence-point -Wswitch-default -Wswitch-unreachable -Wswitch-enum -Wstringop-truncation -Wbool-compare -Wtautological-compare -Wfloat-equal -Wshadow=global -Wpointer-arith -Wpointer-compare -Wcast-align -Wcast-qual -Wwrite-strings -Wdangling-else -Wlogical-op -Wconversion -Wno-pedantic-ms-format)

# 从源码构建二进制文件
add_executable(demo ${src})

# 链接gtk库到二进制文件
target_link_libraries(demo ${GTK3_LIBRARIES})

在这里插入图片描述

gtkmm

# 设置用于构建该项目的最低cmake版本
cmake_minimum_required(VERSION 3.1)

# 设置项目名称和编程语言
project(gtk_demo CXX)

# 寻找gtkmm的头文件和库文件
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTKMM REQUIRED gtkmm-3.0)

# gtkmm头文件路径
include_directories(${GTKMM_INCLUDE_DIRS})
# gtkmm库路径
link_directories(${GTKMM_LIBRARY_DIRS})
# 自定义头文件路径
include_directories(include)
# 设置二进制文件生成路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 获取源码的路径
aux_source_directory(src src)

# 设置编译标准和额外参数
add_compile_options(-std=c++20 -Wall -Werror -Wextra -pedantic -Wimplicit-fallthrough -Wsequence-point -Wswitch-default -Wswitch-unreachable -Wswitch-enum -Wstringop-truncation -Wbool-compare -Wtautological-compare -Wfloat-equal -Wshadow=global -Wpointer-arith -Wpointer-compare -Wcast-align -Wcast-qual -Wwrite-strings -Wdangling-else -Wlogical-op -Wconversion -Wno-pedantic-ms-format)

# 从源码构建二进制文件
add_executable(demo ${src})

# 链接gtkmm库到二进制文件
target_link_libraries(demo ${GTKMM_LIBRARIES})

在这里插入图片描述

官方API文档

gtk+
gtkmm

最后

以上就是可靠大白为你收集整理的gtk+3/gtkmm3导入简述安装示例源码 (命令编译)cmake构建官方API文档的全部内容,希望文章能够帮你解决gtk+3/gtkmm3导入简述安装示例源码 (命令编译)cmake构建官方API文档所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(28)

评论列表共有 0 条评论

立即
投稿
返回
顶部