.glade 파일만 덜렁 생기고 끝이다.
열어보면 XML로 작성된 파일이다.
전에는 glade로 UI 만들고 저장하면 c 소스코드도 줬던걸로 기억하는데
이상하다 생각해서 찾아보니까
glade-3 부터는 아예 소스코드 만드는 기능을 없애버렸다고 한다.
그러면 이걸 어떻게 써먹나... 해서 또 찾아보니까
libglade 라는 라이브러리를 이용해서 프로그램을 띄울 수 있다고 한다.
그래서 써먹어 봤다.
그런데 libglade 홈페이지에서 시킨대로 하니까 이런 에러가 난다.
libglade-WARNING **: could not find signal handler 'some_handler'
이런 제길... ㅜㅜ.인터넷 조낸 찾아봤는데 질문은 많은데 해결책이 없었다.
쉬벌쉬벌 하면서 찾고, 어찌어찌 하다보니 해결이 됐다.
그래서 나같은 사람 있으면 또 삽질할까봐 글을 남긴다.
libglade 메뉴얼이나 기타 문서를 보면
시그널 핸들러(이벤트 핸들러) 함수가 라이브러리에 있지 않고
바이너리 파일에 있는 경우에는
컴파일 할때 --export-dynamic 옵션을 붙여서 컴파일하라고 한다.
이대로 하면 때려 죽여도 안된다. 적어도 내 리눅스 박스에서는 그랬다.
내가 쓰는 배포판은 우분투 7.10 gutsy 버전인데 안된다.
저 옵션이 아니라 다음 옵션을 써야 한다.
-export-dynamic 또는 -Wl,--export-dynamic
저걸 링커 옵션에 집어 넣어야 한다. 컴파일 옵션에 넣어도 에러 안 나는지는 확인 안해봤다.Makefile 만들때 LDCONFIG 변수에 때려 박으면 된다.
옵션 글자를 주의 깊게 보기 바란다. 하이픈(-)의 갯수가 다르다.
나 개인적으로는 후자를 추천한다. 옵션이 좀더 명시적이기 때문이다.
그냥 export-dynamic 옵션만 줄때는 하이픈 두개 쓰면 오류나고 하나쓰면 잘 된다.
뭐가 이래... ㅡㅡ;;
스티븐 이거 알아내느라고 하루 꼬박 삽질했다. 바빠 죽겠는데.. ㅜㅜ
부디 이런것 때문에 고생하는 사람 없으면 좋겠다.
추신 : 어떤 메뉴얼에는 하이픈이 한개로 되어있는 메뉴얼도 있었다.
아마도 gnome쪽 웹 페이지인것 같은데,
만약 그걸 먼저 봤더라면 이런 고생 안했겠지... ㅜㅜ.
Comments List
감사합니다. 님 덕분에 전 반나절만 고생을 했네요.. ^^
헙.. 어쩌다가 이런곳까지 찾아 오셨나요.. ㅡㅡa...
어쨌거나 도움이 되었다니 기쁩니다.
정말 고맙습니다. 하룻동안 붙잡고 고생한 걸 이 글 덕택에 해결하였습니다.
어머나.. 어쩌다가 이런곳까지 흘러 오셨는지...
정말 고생 많이 하셨나 봅니다.. ㅡㅡ/