
GLIB_LIBS=`pkg-config --libs glib-2.0 gthread-2.0`
/*
* writed by kf701
*/
#include <stdio.h>
#include <glib.h>
int main(int argch,char *argv[])
{
GError * ge = NULL
char inbuf[20*1024]
FILE *in = fopen(argv[1],"r")
int size = fread( inbuf, 1, sizeof(inbuf), in )
printf( "file size = %d\n", size )
int outlen = 0, readlen = 0
char *out = g_convert( inbuf, size, "UTF-8", "GBK", &readlen, &outlen, &ge )
printf( "convert outlen=%d , readlen = %d\n", outlen, readlen )
if( NULL == out )
{
printf("out is NULL,err=%s\n", ge->message)
exit(0)
}
char output_file[128]
sprintf( output_file, "utf8-%s", argv[1] )
FILE *of = fopen( output_file, "w" )
int n = fwrite( out, 1, outlen, of )
printf( "fwrite n = %d\n", n)
}
调用一下glib库.就好了
[TODO]BCM2835这货SoC是ARM1176JZF-S核,armv6z架构.然后WebRTC默认的用的arm-linux-gnueabihf是armv7的架构...
所以,谁要编译的注意这个问题,手动添加编译链接的命令补丁,我先摸鱼去了.
首先,树莓派先要安装一堆依赖库:
sudo apt-get install libgtk-3-dev #gtk+-3.0,gmodule-2.0,gthread-2.0
sudo apt-get install libc6-dev #libm.so
sudo apt-get install libasound2-dev
sudo apt-get install libpulse-dev
然后,挂载树莓派TF卡到你的PC上来使用树莓派的rootfs
用gn gen生成构建项目脚本时请添加:
is_clang=false
target_os=liunx
target_cpu=arm
sysroot=(树莓派的root)/usr/lib/arm-linux-gnueabihf/
debug=false
treat_warningaserror????=false #禁止warning报错,自己放狗搜下是啥吧
其次魔改build/config那个啥啥的py文件添加(树莓派的root)/usr/lib/arm-linux-gnueabihf/pkg_config/
不然gn gen生成会失败.
最后就是有的编译会缺头文件,自行解决吧.
1.下载:http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.12/glib-2.12.11.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.12/glib-dev-2.12.11.zip
这是别人已经编译好的GTK,一个是runtime,主要是 .dll,另一个是win32开发用的文件集。主要是.h和.lib文件。
2. 安装:
先安装好runtime,注意环境变量path要手动加入那些.dll所在的目录。然后再安装后者,把.h加入VC++6的"include files"比较麻烦。总之,在vc++6 menu->tools->options->directories里面的把所有安装完成后包含.h的目录,以及这个目录里面的子目录都加入"include files"就不会报错,如果报错,估计是少glibconfig.h等,这些在你安装目录下lib目录里面,你查查,而后,拷贝到.h或者把这些目录也加入"include files"都可。最后,把lib加入到 "library files"里面。
3. 测试:
建立一个工程。在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[] ){
GtkWidget *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编译器的帮助
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)