힘내라 일처리

vala 알아보기 본문

알아보기

vala 알아보기

일처리 2020. 8. 12. 22:29
반응형

 

안녕하세요?

일처리 못하는 놈입니다.

 

vala 는 조금 특별한 언어로 빌드를 하게되면 c언어를 생성한다는 특징이 있습니다.

물론 생성되는 소스코드가 순수 c로 생성 되지는 않고, glib의 GObject를 사용해서 구성되는 코드가 만들어집니다.

 

리눅스에서 개발을 할때는 glib라이브러리를 많이 사용하게 되는데 좀더 편한 방법을 찾다가 알게되었습니다.

아직 실무에서 사용은 해보지 못했다면 어느정도 공부해 본다면 나중에 도움이 많이 될듯 합니다.

 

https://wiki.gnome.org/Projects/Vala/Tutorial

 

Projects/Vala/Tutorial - GNOME Wiki!

 

wiki.gnome.org

공식 튜토리얼 문서는 위에서 확인할 수 있습니다.

 

여기서는 아주 간단한 예제를 한번 실행해 보겠습니다.

sudo apt install valac # vala 설치

hello.vala  파일을 만들어 줍니다.

void main(string[] args) {
  print("Hello, world!\n");
}
valac hello.vala # 컴파일
./hello # 실행결과 > Hello, world!
valac hello.vala -C # c언어 소스코드 생성 

이렇게 해서 생성된 hello.c파일을 열어보면 

/* hello.c generated by valac 0.48.6, the Vala compiler
 * generated from hello.vala, do not modify */

#include <stdlib.h>
#include <string.h>
#include <glib.h>

void _vala_main (gchar** args,
                 gint args_length1);

void
_vala_main (gchar** args,
            gint args_length1)
{
        g_print ("Hello, world!\n");
}

int
main (int argc,
      char ** argv)
{
        _vala_main (argv, argc);
        return 0;
}

위와 같이 c언어 소스코드가 생성되는 것을 확인 할 수 있습니다.

이걸 gcc로 빌드를 해볼까요?

gcc hello.c `pkg-config --cflags --libs glib-2.0` -o hello_from_c
./hello_from_c # 실행 결과 > Hello, world!

별 문제 없이 빌드가 되고 실행도 되는걸 확인 할 수 있습니다.

 

사용하기 따라서 c언어에 사용할 수 있는 라이브러리를 만들 수 도 있다고 하니 활용성이 다양할거 같은데 더 많은 부분은 직접 공부해보고 새로 포스트를 남기도록 하겠습니다.

 

감사합니다.

반응형
Comments