notepad++上搭建gtk+2.0/3.x开发环境

前言

  老师布置了一道题需要用到图形界面,于是开始找图形库。最后选择了gtk+图形库,然后折腾了大概一天。

  这里记录自己新学到的知识,同时也给后来者一些便利。

准备

  下载以下内容

    notepad++(由于官网访问较慢,建议使用其他渠道)

    mingw(包含msys和gcc工具链)

    gtk+bundle(2.x或3.x都可以,这里提供3.x。若连接失效,请自行搜索下载)

安装

  notepad++的安装就是普通安装,这里不做介绍。

  运行mingw-get-setup.exe,选择一个安装目录(这里以c:\mingw为例),然后等待其下载和安装完成。接着,运行mingw安装目录的子目录bin下的mingw-get.exe(这里是c:\mingw\bin\mingw-get.exe),选择Basic Setup,对这里所有包右键选择Mark for Installation,接着菜单选择Installation->Apply Changes,等待其下载完成(这里下载时间较长,请耐心等待)。

  解压下载的gtk+bundle到任意目录(这里以c:\gtk+为例)。

搭建

  首先,添加以下环境变量值(系统或用户变量都可,变量名均为Path,请根据自己的安装路径自行更改):

    C:\mingw\bin

    C:\mingw\msys\1.0\bin

    C:\gtk+\bin

  下面是写给不清楚环境变量设置的,清楚的请跳过:

    点击我的电脑,然后右键,选择属性,接着在左边选择高级系统设置,然后选择高级->环境变量,在用户变量或者系统变量中找到Path变量(没有就新建,变量名填Path,变量值为如下内容),选择编辑,在变量值前面添加以下内容:

C:\mingw\bin;C:\mingw\msys\1.0\bin;C:\gtk+\bin;

    然后一直确定就行。

  打开命令行,验证环境变量是否设置正确。

    输入gcc,没有显示“xxx 不是内部或外部命令,也不是可运行的程序或批处理文件。”就设置正确了,下同。

    输入pkg-config

    输入sh

  

  接着打开notepad++安装目录,然后新建目录bat,在该目录下新建一个文本文件,重命名为build_gtk+.bat,写入以下内容:

@echo off
rem /**
rem   * File: build_gtk+.bat
rem   * Description: 创建并运行GTK+程序
rem   * Author: linzhehuang
rem   * Blog:http://www.cnblogs.com/linzhehuang/
rem   * Version: 0.0.1
rem   * Date: 2017 4.08
rem   */

rem 在notepad++菜单 运行->运行->运行名称 中输入以下命令:
rem cmd /c echo $(CURRENT_DIRECTORY)>bat\current_directory&&echo $(NAME_PART)>bat\name_part&&start bat\build_gtk+.bat

rem 分别从文件中读取文件路径和文件名
for /f "delims=" %%i in (bat\current_directory) do set current_directory=%%i
for /f "delims=" %%i in (bat\name_part) do set name_part=%%i

rem disk-磁盘盘符 directory-文件目录(不含磁盘盘符)
set disk=%current_directory:~0,1%
set directory=%current_directory:~2%

rem 将文件目录中的\替换成/
set directory=%directory:\=/%

rem 合成最终目录
if %directory%==/ (
set directory=/%disk%/
) else (
set directory=/%disk%%directory%/
)

rem 定义源文件和二进制文件路径
set src_file=%directory%%name_part%.c
set bin_file=%directory%%name_part%.exe

rem 运行文件路径
set exe_file=%bin_file:/=\%
set exe_file=%disk%:%exe_file:~2%

rem sh命令行命令
set sh_cmd="gcc %src_file% -o %bin_file% `pkg-config --libs --cflags gtk+-3.0`"

rem 编译并运行GTK+程序
sh -c %sh_cmd%
start %exe_file%&exit

  注意,若安装的是gtk2.x,将以下这行:

set sh_cmd="gcc %src_file% -o %bin_file% `pkg-config --libs --cflags gtk+-3.0`"

  改成以下内容,其实就把3.0改成2.0

set sh_cmd="gcc %src_file% -o %bin_file% `pkg-config --libs --cflags gtk+-2.0`"

  接着运行notepad++,菜单选择 运行->运行,在运行名称中输入以下命令:

cmd /c echo $(CURRENT_DIRECTORY)>bat\current_directory&&echo $(NAME_PART)>bat\name_part&&start bat\build_gtk+.bat

  点击保存,输入名称(这里输入Build_GTK+),然后定义快捷键,接着选择OK。

  

  最后,新建一个简单的GTK源文件,验证是否成功,以下是该源文件(注意先保存该文件,然后点击 运行->Build_GTK+ 或 使用自定义的快捷键):

#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
    GtkWidget *window;
    gtk_init (&argc, &argv);
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_widget_show (window);
    gtk_main();
    return 0;
}

  若弹出一个窗口,就证明成功了。

注意及经验

  1.上述所讲述一些内容,不要生搬硬套,要根据自己的情况进行更改。

  2.上述的build_gtk+.bat批处理文件,其实就实现了下面一个编译语句和运行该程序:

sh - c "gcc %src_file% -o %bin_file% `pkg-config --libs --cflags gtk+-3.0`"

  其中%src_file%为源文件,而%bin_file%为最后的程序。请注意`pkg-config --libs --cflags gtk+-3.0` ,这里使用的是反引号(数字1旁边那个),而不是单引号。

  该语句的意思和作用请看该文章 `pkg-config --cflags --libs gtk+-2.0`的意思、作用

  3.命令行下编译gtk源文件会报错,因此必须在msys环境下编译。以上 sh -c 就是进入msys环境下,后面双引号中的内容就是需要运行的编译命令。

  4.命令行下的路径显示和msys环境下的路径显示不同,因此批处理中一些代码就是为了实现路径的转换。

后话

  虽然折腾了这么久,但其实也学到很多知识,尤其是关于批处理的知识(读取文件内容、字符串的替换和截取),同时得到了一个教训,那就是“批处理编程,多一个和少一个空格都会造成错误”(由于写C语言习惯上打空格,在这一点上受了不少苦)。还有,觉得会折腾是件好事,很多创意不都是在折腾的过程中突现的。接下来,好好学习gtk+的开发和完成老师布置的题。

时间: 2024-10-05 18:31:00

notepad++上搭建gtk+2.0/3.x开发环境的相关文章

在 Ubuntu 上搭建 Eadoop 分布式集群 Eclipse 开发环境

一直在忙Android FrameWork,终于闲了一点,利用空余时间研究了一下Hadoop,并且在自己和同事的电脑上搭建了分布式集群,现在更新一下blog,分享自己的成果. 一 .环境 1.操作系统:Ubuntu 12.04 LTS 64位 2.Java版本:openjdk-7-jdk 3.Hadoop版本:2.6.0 4.结点信息: 机器名 IP hostname 作用 master 10.13.14.83 rdcdz140395 NameNode and JobTracker slave-

windows下搭建hadoop-2.6.0本地idea开发环境

概述 本文记录windows下hadoop本地开发环境的搭建: OS:windows hadoop运行模式:独立模式 安装包结构: Hadoop-2.6.0-Windows.zip - cygwinInstall // cygwin离线安装包 - hadoop-2.6.0-windows.tar.gz // hadoop-2.6.0 windows安装包 PS: hadoop-2.6.0-windows.tar.gz是基于官方发行包hadoop-2.6.0.tar.gz,并为windows单机测

搭建hadood2.8.0集群开发环境

目标: 搭建hadoop+hbase+zoopkeer+hive 开发环境 安装环境: 1.centeros 192.168.1.101 2. centeros 192.168.1.102 开发环境: window +eclipse 一.安装hadoop集群 1.配置hosts #vi /etc/hosts 192.168.1.101 master 192.168.1.101 slave1 2.关闭防火墙: systemctl status firewalld.service #检查防火墙状态

在MAC上搭建cordova3.4.0的IOS和android开发环境

Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#download 下载成功后解压,首先讲一下IOS的: 首先要保证你的Python是可以使用的,且版本正确,没有问题, 然后将cordova-ios拷贝到home路径下,假如我的用户名为karl,我要将项目创建在桌面上,文件夹名为Hi,项目名为Hi,此时调出终端,运行命令: [plain] view pla

SDL2.0的VS开发环境搭建

SDL2.0的VS开发环境搭建 [前言] 我是用的是VS2012,VS的版本应该大致一样. [开发环境搭建] >>>SDL2.0开发环境配置:1.从www.libsdl.org 下载SDL2.0开发工具,主要是include头文件目录及编译好的lib和dll文件,并解压:2.打开VS2012,新建空白工程:3.添加头文件路径.在工程上点击右键-->属性-->C/C++-->附加包含路径,输入1中解压的头文件路径(注意,需要先在工程中添加一个C或者C++的文件):4.添加

Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种各样的问题也就来了,之前网上一直有零零碎碎的移植教程,但是都不完整,或是有这样或者那样的问题.今天刚刚研究成功了Cocos2dx-3.0版本项目的安卓平台移植问题,本人亲自完成了整个过程,将Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程 一起分享给大家.

使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框架来开发项目,而这些框架一般不是单独使用的,经常是Struts2+Spring3+Hibernate.SpringMVC+Spring+Hibernate.SpringMVC+Spring+Mybatis这几种组合中的一种,也就是多个框架配合起来使用.今天来总结一下如何使用Maven搭建Struts

用 Ubuntu 12.04 搭建一个 Ruby on Rails 本地开发环境

转载,原文链接 http://linux.cn/portal.php?mod=view&aid=170 用 Ubuntu 搭建一个 Ruby on Rails 本地开发环境 想要开发 Ruby on Rails 应用吗?虽然已经有一些(初级的)Ruby on Rails 教程了,但是似乎在如何搭建一个简洁而更新的本地开发环境方面还有些不甚确定的地方. 这个教程将引导你通过几个步骤来搭建一个基于 Ubuntu 的 Ruby on Rails 本地开发环境.而这个教程的即将发布的第二部分,将帮助你搭

(转)VC6.0中OpenGL开发环境配置

首先简单介绍一下OpenGL: OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性.       OpenGL官方网站(英文)    http://www.opengl.org 然后设置编程的一些环境,及其安装必备文件的步骤如下: 第一步:选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的.但这里我们选择VC++ 6.0作为学习OpenGL的环