| swyear joined:
2007-10-04
 posted:
127
 promoted: 4
 bookmarked: 0
 
 | | 1 | subject:
請幫忙解決 64bit-portability-issue |  0  0 | 2011-06-05 | quote |  |  | 
 目前 1.6.4pre16 還有一些地方會出現 64bit-portability-issue E: gcin 64bit-portability-issue eggtrayicon.cpp:247, 344, 367E: gcin 64bit-portability-issue gcin-setup-gtab.cpp:170, 205
 E: gcin 64bit-portability-issue gcin-setup-list.cpp:504, 542, 580
 E: gcin 64bit-portability-issue gcin-setup-pho.cpp:328, 351, 390
 E: gcin 64bit-portability-issue gcin-setup.cpp:536
 E: gcin 64bit-portability-issue tslearn.cpp:236
 E: gcin 64bit-portability-issue win-int.cpp:52
 從 buildlog 找出來是在這些地方
 eggtrayicon.cpp: In function 'egg_tray_icon_unrealize':eggtrayicon.cpp:247:14: warning: assignment makes pointer from integer without a cast [enabled by default]
 eggtrayicon.cpp: In function 'egg_tray_icon_update_manager_window':
 eggtrayicon.cpp:344:14: warning: assignment makes pointer from integer without a cast [enabled by default]
 eggtrayicon.cpp: In function 'egg_tray_icon_manager_window_destroyed':
 eggtrayicon.cpp:367:10: warning: assignment makes pointer from integer without a cast [enabled by default]
 
 gcin-setup-gtab.cpp: In function 'create_spc_opts':
 gcin-setup-gtab.cpp:170:16: warning: assignment makes pointer from integer without a cast [enabled by default]
 gcin-setup-gtab.cpp: In function 'create_auto_select_by_phrase_opts':
 gcin-setup-gtab.cpp:205:29: warning: assignment makes pointer from integer without a cast [enabled by default]
 gcin-setup-list.cpp: In function 'create_im_toggle_keys':
 gcin-setup-list.cpp:504:22: warning: assignment makes pointer from integer without a cast [enabled by default]
 gcin-setup-list.cpp: In function 'create_speaker_opts':
 gcin-setup-list.cpp:542:20: warning: assignment makes pointer from integer without a cast [enabled by default]
 gcin-setup-list.cpp: In function 'create_gcb_pos_opts':
 gcin-setup-list.cpp:580:15: warning: assignment makes pointer from integer without a cast [enabled by default]
 
 gcin-setup-pho.cpp: In function 'create_kbm_opts':
 gcin-setup-pho.cpp:328:16: warning: assignment makes pointer from integer without a cast [enabled by default]
 gcin-setup-pho.cpp:351:15: warning: assignment makes pointer from integer without a cast [enabled by default]
 gcin-setup-pho.cpp: In function 'create_eng_ch_opts':
 gcin-setup-pho.cpp:390:19: warning: assignment makes pointer from integer without a cast [enabled by default]
 
 gcin-setup.cpp: In function 'create_gcin_edit_display':
 gcin-setup.cpp:536:25: warning: assignment makes pointer from integer without a cast [enabled by default]
 
 tslearn.cpp: In function 'create_pho_sel_area':
 tslearn.cpp:236:24: warning: assignment makes pointer from integer without a cast [enabled by default]
 
 win-int.cpp: In function 'create_int_opts':
 win-int.cpp:52:16: warning: assignment makes pointer from integer without a cast [enabled by default]
 希望老大有空修正一下 謝謝 | 
| eliu 
  joined:
2007-08-09
 posted:
11514
 promoted: 617
 bookmarked: 187
 新竹, 台灣
 | 懷疑是你的 build environment .h 太舊的問題。我看 function 都有 prototype 用 make eggtrayicon.E 可以看到 function 都有 prototype 的宣告,請確認 eggtrayicon.E 是否有藍色的這一行   eggtrayicon.cpp:247:14: warning: assignment makes pointer from integer without a cast [enabled by default] 
 eggtrayicon.E GdkWindow* gdk_window_lookup_for_display (GdkDisplay *display,GdkNativeWindow anid);
 …… static voidegg_tray_icon_unrealize (GtkWidget *widget)
 {
 EggTrayIcon *icon = ((((EggTrayIcon*) g_type_check_instance_cast ((GTypeInstance*) ((widget)), ((egg_tray_icon_get_type ()))))));
 GdkWindow *root_window;
 
 if (icon->manager_window != 0L)
 {
 GdkWindow *gdkwin;
 
 
 gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
 icon->manager_window);
 
 
 
 
edited: 1
 | 
| swyear joined:
2007-10-04
 posted:
127
 promoted: 4
 bookmarked: 0
 
 | 謝謝版主回覆 看起來的確是編譯環境的關係 在 Open Build Service 的 openSUSE 11.4 環境可以看到 + cat eggtrayicon.E
+ grep gdk_window_lookup_for_display
GdkWindow* gdk_window_lookup_for_display (GdkDisplay *display,
      gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
      gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (((((GtkWidget*) g_type_check_instance_cast ((GTypeInstance*) ((icon)), ((gtk_widget_get_type ()))))))),
  gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (((((GtkWidget*) g_type_check_instance_cast ((GTypeInstance*) ((icon)), ((gtk_widget_get_type ()))))))),但是在 openSUSE Factory 中只看到 + cat eggtrayicon.E
+ grep gdk_window_lookup_for_display
      gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
      gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (((((GtkWidget*) g_type_check_instance_cast ((GTypeInstance*) ((icon)), ((gtk_widget_get_type ()))))))),
  gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (((((GtkWidget*) g_type_check_instance_cast ((GTypeInstance*) ((icon)), ((gtk_widget_get_type ()))))))),
 應該是OBS有問題
 謝謝您的回答
 | 
| swyear joined:
2007-10-04
 posted:
127
 promoted: 4
 bookmarked: 0
 
 | 報告老大: openSUSE Factory 用了 gtk2.24 而上面那些出現 64bit issue 的似乎都是用到了過期函數 http://developer.gnome.org/gdk/stable/gdk-X-Window-System-Interaction.html 像是 gdk_window_lookup_for_display gtk_combo_box_new_text ... 可能要請您先預備一下了 | 
| caleb joined:
2007-09-22
 posted:
630
 promoted: 134
 bookmarked: 90
 
 | | swyear |  | 而上面那些出現 64bit issue 的似乎都是用到了過期函數 像是 gdk_window_lookup_for_display gtk_combo_box_new_text | 
之前為了 GTK+ 3.x 已經把這些函數都搞定了,不過有的版本偵測是限定在 >= 2.9x 。 本來是放在 gcin.h, 不過 gcin 1.6.4.pre18 以上版本移到了 gcin-gtk-compatible.h, 如果還是有問題可以調整 gcin-gtk-compatible.h 裡的版本偵測。 GTK+ 2.x 官方預定最終版本就停留在 2.24 系列,不會有 2.25 / 2.26 等等。   | 
| swyear joined:
2007-10-04
 posted:
127
 promoted: 4
 bookmarked: 0
 
 | | caleb |  |   之前為了 GTK+ 3.x 已經把這些函數都搞定了,不過有的版本偵測是限定在 >= 2.9x 。 本來是放在 gcin.h, 不過 gcin 1.6.4.pre18 以上版本移到了 gcin-gtk-compatible.h, 如果還是有問題可以調整 gcin-gtk-compatible.h 裡的版本偵測。 GTK+ 2.x 官方預定最終版本就停留在 2.24 系列,不會有 2.25 / 2.26 等等。   | 
謝謝大家,1.6.4.pre18 已經可以在 gtk2.24 編譯了 |