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.8
- 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 ;
- }
若弹出一个窗口,就证明成功了。
注意及经验
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环境下的路径显示不同,因此批处理中一些代码就是为了实现路径的转换。
5.上文的批处理有些功能不完整,笔者会不定期更新上文的批处理。
后话
虽然折腾了这么久,但其实也学到很多知识,尤其是关于批处理的知识(读取文件内容、字符串的替换和截取),同时得到了一个教训,那就是“批处理编程,多一个和少一个空格都会造成错误”(由于写C语言习惯上打空格,在这一点上受了不少苦)。还有,觉得会折腾是件好事,很多创意不都是在折腾的过程中突现的。接下来,好好学习gtk+的开发和完成老师布置的题。
notepad++上搭建gtk+2.0/3.x开发环境的更多相关文章
- 在Windows上搭建PhoneGAP(crodova)的开发环境
PhoneGAP是一个可以将web应用打包成移动应用的开源框架,使用它可以迅速的将HTML.CSS和JavaScript开发的web应用打包成跨平台的移动应用程序,而Apache Cordova是Ph ...
- 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境
一直在忙Android FrameWork,终于闲了一点,利用空余时间研究了一下Hadoop,并且在自己和同事的电脑上搭建了分布式集群,现在更新一下blog,分享自己的成果. 一 .环境 1.操作系统 ...
- Mac OS X上搭建伪分布式CDH版本Hadoop开发环境
最近在研究数据挖掘相关的东西,在本地 Mac 环境搭建了一套伪分布式的 hadoop 开发环境,采用CDH发行版本,省时省心. 参考来源 How-to: Install CDH on Mac OSX ...
- 快速搭建fabric-v1.1.0的chaincode开发环境
本文参考了fabric官方文档:http://hyperledger-fabric.readthedocs.io/en/latest/peer-chaincode-devmode.html?highl ...
- windows下搭建hadoop-2.6.0本地idea开发环境
概述 本文记录windows下hadoop本地开发环境的搭建: OS:windows hadoop执行模式:独立模式 安装包结构: Hadoop-2.6.0-Windows.zip - cygwinI ...
- 在MAC上搭建cordova3.4.0的IOS和android开发环境
Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...
- Linux下搭建gtk+2.0开发环境
安装gtk2.0 sudo apt-get install libgtk2.0-dev 查看 2.x 版本 pkg-config --modversion gtk+-2.0 #有可能需要sudo ap ...
- Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解
作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...
- SDL2.0的VS开发环境搭建
SDL2.0的VS开发环境搭建 [前言] 我是用的是VS2012,VS的版本应该大致一样. [开发环境搭建] >>>SDL2.0开发环境配置:1.从www.libsdl.org 下载 ...
随机推荐
- HDU1372 Knight Moves(BFS) 2016-07-24 14:50 69人阅读 评论(0) 收藏
Knight Moves Problem Description A friend of you is doing research on the Traveling Knight Problem ( ...
- java web渲染器
渲染就是server端将夹杂有脚本语言变量对象的模版文件解释为纯html页面的过程!
- Android-SPUtil-工具类
SPUtil-工具类 是专门对 Android共享首选项 SharedPreferences 的数据保存/数据获取,提供了公共的方法行为: package common.library.utils; ...
- oracle 导出导入命令
imp YG_XSOA_NEW/kingo@20.14.12.14/XSSJZX file=d:\daochu.dmp full=y (导入) exp YG_XSOA_NEW/kingo@20 ...
- Windows Server 2012 R2部署--安装桌面体验
Windows Server 2012 R2部署(3)---安装桌面体验 1) 打开服务器管理器 2) 选择所有服务器 3)添加角色和功能 4)下一步 5)下一步 6)下一步 ...
- C# 一些代码小结--datGirdView 保存到csv文件
if (dataGridView1.Rows.Count == 0) { MessageBox.Show("No data available!", "Prompt&qu ...
- Spring Boot - Spring Data
使用JPA 虽然JPA是一个标准,但spring中一般就是使用hibernate实现的 使用JPA(Java Persistence API,Java持久化API,是个规范,其实是借助Hibernat ...
- CefSharp禁止弹出新窗体,在同一窗口打开链接,并且支持带type="POST" target="_blank"的链接
1.实现ILifeSpanHandler接口,代码如下: using CefSharp; using CefSharp.WinForms; using System; using System.Col ...
- sp2010 升级sp2013 用户无法打开网站
Add-PSSnapin microsoft.sharepoint.powershell $WebAppName = "http://wtcsps99:82/" $wa = get ...
- “全栈2019”Java多线程第二十六章:同步方法生产者与消费者线程
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...