GTK 代码从Linux移植到Windows心得
2010-04-10 18:41
239 查看
调试代码的难度是首次编写这些代码的两倍,因此,如果你在编写代码时就已经发挥了全部的聪
明才智,那么按照常理,你将无法凭借自己的智慧去调试这些代码。
----题记
看到这句
话有没有想揍人的感觉?你Y一技术文章,写得跟新概念作文似的。呵呵,热烈庆祝博客访问量突破1w大关。每
天有很多熟悉的和陌生的朋友到访,我想那些通过搜索引擎来到这里的朋友,我的文章应该解决了你的一些问题吧。
我的想法就是分享技术心得,减少不必要的麻烦和重复劳动时间。
我的程序在Linux下的界面差不多完成了,想达成之前跨平台的愿望,想把它移植到windows
下
GTK
+
开发
环境在win32&VC++6 IDE环境下的搭建
1.
到 http://gladewin32.sourceforge.net/
下载并安装以下文件
1)
、
Gtk
+/Win32 Runtime Environment Installer
2)、
Gtk
+/Win32
Development Environment
这是别人已经编译好的GTK
,一个是runtime,主要是
.dll,另一个是win32开发
用的文件集。主要是.h和.lib文件。
2.
测试:
在VC++6中建立一
个工程。在project setting的link里面,去掉那些.lib文件,加入如下:
glib-2.0.lib gtk
-win32-2.0.lib
gdk-win32-2.0.lib gobject-2.0.lib gdk_pixbuf-2.0.lib gthread-2.0.lib
gmodule-2.0.lib pango-1.0.lib intl.lib
。
而后,在.cpp文件
里面粘贴如下代码:
#include
<gtk
/gtk
.h>
int main( int argc,char *argv[] ){
Gtk
Widget *window;
gtk
_init (&argc, &argv);
window = gtk
_window_new (GTK
_WINDOW_TOPLEVEL);
gtk
_widget_show (window);
gtk
_main ();
return 0;
}
编译,如果有提示,在project setting的
c/c++里面删除一些stdafx.h等字样的参数。必要时查看一下cl.exe编译器的帮助
按照上面的介绍,基本可以无错通过hello world。可是把我在Linux下的代码沾到VC上,问题就来了
首先是字符集的问题,UTF 和 GBK,导致了多少麻烦和安全漏洞。
先用word以UTF-8格式打开Linux下的源代码,沾到vc里,
运行时报错 Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()
所有的构件的字都是乱码。 网上的建议是 g_local_to_utf8()
然后是编译器的差异,因为要用纯c,所以实用的工程源文件是c而不是默认的cpp
这就遇上编译器的差异了。gcc和vc上那个c编译器还是很有差别。比如vc6.0的c编译器要求变量必须定义在函数的头部,而gcc允许定义在任意位
置。折腾半天才把所有的变量调整完。
好容易编译通过,又显示乱码,再改就遇到vc6.0的那个著名的bug,编译就死在哪里了。现在编译通过了,链结又出问题了。我最初的编写一次,两处运行
的美好愿望破灭了。
罢了,先把Linux上的写完,windows
下的一点一点改吧。
转载:http://hi.baidu.com/deep_pro/blog/item/1…107e3e6f6e.html
明才智,那么按照常理,你将无法凭借自己的智慧去调试这些代码。
----题记
看到这句
话有没有想揍人的感觉?你Y一技术文章,写得跟新概念作文似的。呵呵,热烈庆祝博客访问量突破1w大关。每
天有很多熟悉的和陌生的朋友到访,我想那些通过搜索引擎来到这里的朋友,我的文章应该解决了你的一些问题吧。
我的想法就是分享技术心得,减少不必要的麻烦和重复劳动时间。
我的程序在Linux下的界面差不多完成了,想达成之前跨平台的愿望,想把它移植到windows
下
GTK
+
开发
环境在win32&VC++6 IDE环境下的搭建
1.
到 http://gladewin32.sourceforge.net/
下载并安装以下文件
1)
、
Gtk
+/Win32 Runtime Environment Installer
2)、
Gtk
+/Win32
Development Environment
这是别人已经编译好的GTK
,一个是runtime,主要是
.dll,另一个是win32开发
用的文件集。主要是.h和.lib文件。
2.
测试:
在VC++6中建立一
个工程。在project setting的link里面,去掉那些.lib文件,加入如下:
glib-2.0.lib gtk
-win32-2.0.lib
gdk-win32-2.0.lib gobject-2.0.lib gdk_pixbuf-2.0.lib gthread-2.0.lib
gmodule-2.0.lib pango-1.0.lib intl.lib
。
而后,在.cpp文件
里面粘贴如下代码:
#include
<gtk
/gtk
.h>
int main( int argc,char *argv[] ){
Gtk
Widget *window;
gtk
_init (&argc, &argv);
window = gtk
_window_new (GTK
_WINDOW_TOPLEVEL);
gtk
_widget_show (window);
gtk
_main ();
return 0;
}
编译,如果有提示,在project setting的
c/c++里面删除一些stdafx.h等字样的参数。必要时查看一下cl.exe编译器的帮助
按照上面的介绍,基本可以无错通过hello world。可是把我在Linux下的代码沾到VC上,问题就来了
首先是字符集的问题,UTF 和 GBK,导致了多少麻烦和安全漏洞。
先用word以UTF-8格式打开Linux下的源代码,沾到vc里,
运行时报错 Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()
所有的构件的字都是乱码。 网上的建议是 g_local_to_utf8()
然后是编译器的差异,因为要用纯c,所以实用的工程源文件是c而不是默认的cpp
这就遇上编译器的差异了。gcc和vc上那个c编译器还是很有差别。比如vc6.0的c编译器要求变量必须定义在函数的头部,而gcc允许定义在任意位
置。折腾半天才把所有的变量调整完。
好容易编译通过,又显示乱码,再改就遇到vc6.0的那个著名的bug,编译就死在哪里了。现在编译通过了,链结又出问题了。我最初的编写一次,两处运行
的美好愿望破灭了。
罢了,先把Linux上的写完,windows
下的一点一点改吧。
转载:http://hi.baidu.com/deep_pro/blog/item/1…107e3e6f6e.html
相关文章推荐
- windows到Linux代码移植
- 将Linux代码移植到Windows的简单方法(1)
- 记一次Windows向Linux的代码移植
- 将Linux代码移植到Windows的简单方法
- Linux程序代码移植到Windows的简单方法(转)
- 将Linux代码移植到Windows的简单方法(2)
- Linux程序代码移植到Windows的简单方法[转摘]
- 将Linux代码移植到Windows的简单方法
- linux代码移植到windows
- 几个 Windows 到 Linux 的代码移植问题
- 将Linux代码移植到Windows的简单方法
- Windows到Linux系统代码移植遇到的问题
- linux代码向windows移植花絮
- 将Linux代码移植到Windows的简单方法
- Socket 编程 windows到Linux代码移植遇到的问题
- c++代码在windows,aix,linux上的移植
- mysql 从linux 代码移植到windows mysql_fetch_row 接收不到任何数据,mysql也不反回错误
- windows到Linux代码移植遇到的问题
- 将Linux代码移植到Windows的简单方法
- c++代码在windows,aix,linux上的移植