gtk+1.2 하고 2.0 서로 호환성있게 하려면 어떻게 해야 하는가요
글쓴이: ins878 / 작성시간: 토, 2005/06/25 - 12:19오전
안녕하세요. 요세 방학이라 gtk를 이용해서 x-window 프로그래밍을 하고 있는데요~ 한가지 궁금한 점이 있어서 이렇게 글을 올립니다.
현재 gtk+ 1.2 하고 gtk+ 2.0 이 있잖아요. gtk+ 1.2로 만든 것을 gtk+ 2.0에서 컴파일을 하니깐 에러가 많이나던데요... gtk+ 1.2 하고 gtk+ 2.0하고 많이 틀려서 서로가 혼자성이 없는 것 같더군요.
현재 GNOME도 그렇고 대부분의 x-window프로그램이 gtk+ 2.0 이상을 사용해서 만드는 것 같습니다. 그래서 질문드리는데요. 만약 gtk+ 1.2로 만든 것을 gtk+2.0에서 수정없이 컴파일 하려면 어떻게 해야하는 가요. 즉, 프로그램을 옛날 x-window용으로 gtk+1.2로 만들었다면, 현재 GTK+ 2.0으로 구성된 x-window에서 에러없이 컴파일 하려면 어떻게 해야 하는지... 답변 좀 부탁드립니다.
요약하면, gtk+1.2를 이용하여 만든 프로그램을 옛날 X-window와 현재 X-window에서 에러없이 컴파일 하려면 어떻게 해야하는지... 답변 좀 해주세요. 꼭 부탁드립니다.
Forums:
gtk 1.x 로 만든 프로그램은 컴파일 해 봐야 gtk 1.x 어플밖에
gtk 1.x 로 만든 프로그램은 컴파일 해 봐야 gtk 1.x 어플밖에는 되지 못하는 걸로 알고 있습니다.
그래서 mplayer gtk 2.x 패치같이 소스 자체를 gtk 1.x 대응에서 gtk 2.x 대응으로 바꿔주는 패치가 존재하는 거겠죠.
----
블로그 / 위키 / 리눅스 스크린샷 갤러리
소스에서 GTK 관련 부분을 직접 수정해줘야 합니다.메이져 버전을 올
소스에서 GTK 관련 부분을 직접 수정해줘야 합니다.
메이져 버전을 올린건, 호환성을 포기한 것이지요.
단지.. X-Window가 예전거냐 아니냐는 상관이 없습니다.
새 X에 GTK+1.2 라이브러리를 추가로 설치하면 문제 없이 돌아갑니다.
예전 X에도 GTK+2 라이브러리를 설치하면 GTK+ 2.x로 작성한 프로그램이 돌아갑니다.
한 시스템에 GTK+1.2와 GTK+2가 동시에 존재할 수 있습니다.
(라이브러리 버전이 다릅니다)
[quote="progcom"]소스에서 GTK 관련 부분을 직접 수정해줘
추가로 둘은 이름이 다릅니다.
1.2는 그냥 gtk
2.x는 gtk2로 구분됩니다.
즐린
답변감사합니다.
답변 잘 봤습니다. 현재 gtk 2.0 에 gtk 1.2 라이브러리를 설치하려고 하니깐 자꾸 구 버젼이라고 의존성에 걸린다고 하더군요. 그래서 의존성을 무시하고 설치했습니다. 참고로 페도라 코어 3입니다.
그런다음에 gtk 1.2용 응용프로그램을 컴파일하니깐, gtk 1.2를 찾을 수 없다면서 에러가 나는데...
의존성을 무시하고 설치해서 그런가요? 아니면, 무슨 작업을 더 해야하는가요?
다시 한번 답변부탁드립니다.
의존성 같은 것을 무시하시면 안되죠.데비안의 경우 GTK1과 GT
의존성 같은 것을 무시하시면 안되죠.
데비안의 경우 GTK1과 GTK2가 공존할 수 있습니다. Fedora에서도 안될리는 없다고 생각합니다. 정확히 어떤 메시지가 나오던가요? GTK1 설치는 구체적으로 어떻게 하셨나요?
참고로 프로그램을 컴파일하기 위해서는 libgtk*-devel과 같은 것도 깔아주셔야 합니다.
답변감사합니다.
gtk+ 1.2를 설치하려고 하니깐, 현 버젼보다 높은 버젼이 설치되어 있다고 안되더군요. 어떻게 해야하는지... 다시 한번 답변 부탁드립니다.
스무고개는 싫어요. :( 더 구체적으로 최대한 자세히 (!!!) 말씀해주
스무고개는 싫어요. :( 더 구체적으로 최대한 자세히 (!!!) 말씀해주시기 바랍니다.
원래 설치돼있던 GTK1의 버젼은 어떻게 되고, 설치하시려뎐 GTK1의 버젼은 어떻게 되나요?
죄송합니다.
죄송합니다. 처음부터 자세하게 설명을 했어야 하는데...
페도라 코어 1을 쓰면서 gtk+1.2로 간단한 프로그램을 만들었습니다. 아주 간단한 프로그램요~, 거기에는 /usr/include안에 gtk+1.2하고 gtk2.0 이 있더군요. 그래서 gtk+1.2로 만든 것을 아무 에러없이 설치하고 사용할 수 있었습니다.
그런데, 페도라 코어 3으로 업하고 나서 보니간 /usr/include에 gtk2.0 만 있더군요. 그래서 gtk+1.2 하고 gtk+1.2-devel인가? 페도라 코어 1에 있는 것을 설치하려고 하니깐, 현재 상위버젼이 설치되어 있다고 설치가 안되더군요. 상위 버전이라는 것이 gtk2.0을 말하는 것 같은데~ 지금 gtk+1.2로 만든 프로그램을 구동시켜야 하는데..., 어떻게 해야 하는지 잘 모르겠습니다.
즉, 요점을 말하자면, gtk+1.2 라이브러리를 설치하려고 하니깐 상위 버전이 설치되어 있다고 해서 설치가 안됩니다. 상위 버전이 gtk 2.0 인 것 같은데, 페도라 코어 1처럼 gtk+1.2 하고 gtk2.0하고 같이 쓰러면 어떻게 해야 하는지... 답변 좀 부탁드립니다.
> 상위 버전이라는 것이 gtk2.0을 말하는 것 같은데아닐
> 상위 버전이라는 것이 gtk2.0을 말하는 것 같은데
아닐 것 같습니다. gtk+-1.2의 상위버젼을 말하는 거다에 한표 던집니다.
현재 설치돼있는 GTK1의 버젼에 맞는 GTK1-devel을 설치해주셔야 할 것 같습니다.
다시 한번 부탁드립니다. 원래 설치돼있던 GTK1의 버젼은 정확히 어떻게 되고, 정확히 어떤 GTK1-devel을 설치하려 하셨는지 더 자세히 말씀해주시기 바랍니다.
설마 페도라 코어1에 들어있던 패키지를 설치하시려던 것은 아니겠죠? 페도라 코어3용 패키지를 설치하신다면야 문제가 없지 않을까요..?
댓글 달기