概述
基于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文档所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复