메뉴 건너뛰기

enjoyTools.net

GTK+ 3 설정

2015.03.01 00:36

꿈돌이 조회 수:1677

CDT(c c++ development tools) 및 MinGW / MSYS 설정에서 만든 작업물에 GTK+ 3를 사용 가능하게 추가 작업.


#1. 설치

http://www.gtk.org/download 페이지로 이동하여, 32비트 또는 64비트(no안정)

인터넷에서 검색을 해보면 컴파일이니 뭐니 말이 많은데, 지금 하려는 이 환경(윈도우, MinGW/MSYS)에서는

위 다운로드 페이지에서 all-in-one bundle(32bit) 또는 all-in-one bundle(64bit)를 받아서 이클립스 폴더에 압축 풀어주면 끝이다.

eclipse_gtk_복사.png


컴파일 할 때, GTK+ 관련 내용은 pkg-config라는 물건으로 옵션을 잡아주는 것 같다.

이클립스의 C/C++ 빌드옵션에서 이를 잡아주는 것도 가능하고, 아래와 같이 플러그인을 추가하는 것도 가능하다.


Pkg-config support for Eclipse CDT 설치

이클립스에서 풀다운메뉴 Help > Install New Software 클릭 후, 아래 주소를 추가하여 플러그인을 설치한다.

http://petrituononen.com/pkg-config-support-for-eclipse-cdt/update 


#2. 환경설정

Pkg-config support 설치 후, CDT/MinGW 설정할 때처럼 새 프로젝트를 열면 Executable 항목에 Hello World GTK+ Project 라는 항목이 생긴다.

이걸 쓰거나 Blank Project를 쓰던 새로운 프로젝트를 생성했으면 그 내용을 아래의 것으로 바꾼다.

/*
 ============================================================================
 Name        : GTK_hello_world.c
 Author      : swshin
 Version     : not versioned
 Copyright   : team maniac.
 Description : Hello World in GTK+
 ============================================================================
 */

/* https://developer.gnome.org/gnome-devel-demos/stable/beginner.c.html.en */
/* https://developer.gnome.org/gtk3/stable/gtk.html */
/* https://developer.gnome.org/gtk3/stable/index.html */

#include <gtk/gtk.h>

/* 콜백함수 */
static void notice_closed(GtkWidget *widget, gpointer data) {
 g_print("Window closed.\n");
}

int main(int argc, char** argv) {

 /* 위젯 객체 선언 */
 GtkWidget *window;
 GtkWidget *button;

 /* GTK 초기화, 메인창의 변수를 window로 선언 */
 gtk_init(&argc, &argv);
 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

 /* 메인창의 형태, 속성 지정 */
 gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 gtk_window_set_default_size(GTK_WINDOW(window), 150, 70);
 gtk_window_set_title(GTK_WINDOW(window), "Here is area for title");
 gtk_container_set_border_width(GTK_CONTAINER(window), 10);

 /* 추가 위젯 선언 */
 button = gtk_button_new_with_label("Hello World");

 /* 버튼 클릭 등의 이벤트 처리. 필요시 추가 정의된 콜백함수 호출 */
 g_signal_connect(button, "clicked", G_CALLBACK (notice_closed), NULL);
 g_signal_connect_swapped(button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
 g_signal_connect(window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

 /* window 객체에 선언된 위젯 탑재 및 표시 */
 gtk_container_add(GTK_CONTAINER(window), button);

 /* 메인창 위젯 표시, 전체 표시 */
 gtk_widget_show_all(window);
 gtk_main();

 return 0;
}


GTK 라이브러리를 포함시키기 위해 프로젝트 속성(풀다운메뉴 Project > Properties)창 호출 후, 아래( 및 그림)대로 작업하면 GTK 라이브러리를 추가하여 컴파일 할 수 있다.

(단, 신규 프로젝트 생성할 때마다 매번 해주어야 한다.

그리고, 자리를 옮겨서 이클립스 경로가 바뀌어도 또 해주어야 한다.)

C/C++ Build > Settings > Pkg-config 탭 > Advanced 버튼 > gtk 상대경로 입력 > OK 버튼 클릭 > CTRL+A 전체선택 > Select 버튼 > Apply 또는 OK 버튼 클릭

eclipse_gtk_pkg-config_select.png


빌드는 알아서.


여기까지하면 프로젝트 빌드는 문제가 없지만, GTK 패스 설정 문제로 컴파일된 파일이 실행이 안되므로, 풀다운메뉴 Run > Run Configurations 항목을 클릭하여 Path를 추가한다.

eclipse_gtk_run-config.png


여기까지 진행되었다면, 컴파일 된 파일의 실행이 잘 되어야 한다.

eclipse_gtk_run-result.png


끝.

번호 제목 글쓴이 날짜 조회 수
21 VSCode git (Source Control)에 remote 표시 꿈돌이 2020.08.17 173
20 피씨방스튜디오 만들기 #번외6 - 닷넷코어 준비 꿈돌이 2019.01.02 461
19 피씨방스튜디오 만들기 #번외5 - JSP 준비 꿈돌이 2018.11.01 522
18 피씨방스튜디오에서 vscode 업데이트 꿈돌이 2018.09.06 436
17 vscode offline mode 설정 항목 꿈돌이 2018.08.18 1249
16 피씨방스튜디오 만들기 #번외4 - Go 준비 file 꿈돌이 2018.07.14 688
15 VSCode 터미널에서 - Powershell 프롬프트 경로 짧게 하기 꿈돌이 2018.06.29 311
14 피씨방스튜디오 만들기 #번외3 - Python(3.x) 준비 꿈돌이 2018.03.16 430
13 피씨방스튜디오 만들기 #번외2 - PostgreSQL 준비 꿈돌이 2017.11.02 344
12 피씨방스튜디오 만들기 #번외1 - Node.js 준비 꿈돌이 2017.09.19 431
11 피씨방스튜디오 만들기 #4/4 - 취합 및 마무리 file 꿈돌이 2017.09.08 559
10 피씨방스튜디오 만들기 #3/4 - NginX, PHP 준비 꿈돌이 2017.09.08 451
9 피씨방스튜디오 만들기 #2/4 - MariaDB, HeidiSQL 준비 file 꿈돌이 2017.09.07 503
8 피씨방스튜디오 만들기 #1/4 - vscode 포터블 설정 file 꿈돌이 2017.09.07 1122
7 VSCode 외 웹서버 및 node.js 등 포터블 설정 백업 꿈돌이 2017.03.21 654
6 VSCode 다중커서 꿈돌이 2017.02.28 16790
5 External tools, Run 설정 이전 꿈돌이 2016.06.02 491
4 C/C++ CDT/MinGW32에서 pthread 사용하기 file 꿈돌이 2015.03.03 4041
» GTK+ 3 설정 file 꿈돌이 2015.03.01 1677
2 CDT(c c++ development tools) 및 MinGW / MSYS 설정 file 꿈돌이 2015.02.26 3276