LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: wide288

glade-2 生成的文件如果想加上编译参数gthread-2.0 怎么办?

[复制链接]
发表于 2004-7-21 20:07:48 | 显示全部楼层
刚巧最近用glade2.0开发。如果要改Makefile使它生效。需要改./src下的Makefile。需要注意的是,增加的库应该加在文件里
LIBS = -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lgthread-2.0
下。然后再找#include<>中的指向文件。最简单的办法可以,直接在#include <>中加绝对路径或者在Makefile里加,但不能加在你上面的那两行里,在此文件中可以往后看,有增加的地方
另外,这样增加了,如果你的代码不main.c或interface.c或回调函数中,则make编译时不能连接。这时,你可以在下面的行里找到(具体项记不清了),大概是这样:
....
main.$(OBJEXT) interface.$(OBJEXT)
你的文件.$(OBJEXT) <-------加上
...

还有:
...
main.c \
interface.c interface.h \
...
你的文件.c 你的文件.h <---------加上

这样就可以编译了。
 楼主| 发表于 2004-7-22 10:15:05 | 显示全部楼层
楼上两位仁兄讲了很多我不知道的事,学了不少。
不过我还是没有用你们讲的方法解决我的问题。
其中我看了 jerboa 兄的 LIBS 选项,原本是空的,我加上了上面的参数,没起到作用。线程 函数还是没有定义。
 楼主| 发表于 2004-7-22 10:22:42 | 显示全部楼层
最初由 stoner==swkcl 发表
这样做,等于什么都没做。。。。。

到最后放弃了,唉.........

我都不会用glade-2生成代码的,我只用它生成的.glade文件,这个文件就象是vc下的res文件一样的,用一个库libglade可以在代码中载入.glade文件中的构件资源。

好处太多了,主要的是,如果你想修改界面的话,只要修改那个.glade文件就行了,源代码不用动,

linux下的项目管理工具AutoTools toolkits,是很好用的。

不知兄台是如何应用的,我在 gnu/linux  下的经验很少,很多好工具不知如何更好的应用到位。
对于这个gthread库的问题,它是可以受pkg-config管理的,有.pc文件在/usr/lib/pkgconfig/ 下,只要改两个地方,就可以了,
1.在configure.ac中,使用

这个文件在 glade2 生成文件的根目录下没有。不知如何改
/usr/lib/pkgconfig 目录下只有 .pc 文件,其他无
PKG_CHECK_MODULES([PACKAGE], ["gtk+-2.0 gthread-2.0"]) //可以再加别的库
AC_SUBST([PACKAGE_CFLAGS])
AC_SUBST([PACKAGE_LIBS])

2,在源码目录下的Makefile.am中
INCLUDES=\
       @PACKAGE_CFLAGS@

package_LDFLAGS=@PACKAGE_CFLAGS@
package_LDADD=@PACKAGE_LIBS@

然后aclocal&autoheader&automake -a -c -f&&automake&autoconf&./configure --prefix=/usr --sysconfdir=/etc&make
发表于 2004-7-23 09:59:40 | 显示全部楼层
wide288太客气了,呵呵。

jerboa版主说的也对,那是最直接和根本的办法,不过,我还是认为,如果使用AutoTools管理项目的话,是不要去直接修改Makefile的,它是由autoconf 从 Makefile.in(它是由automake 从Makefile.am生成的)  生成的,如果有什么错误,那也是Makefile.am和configure.ac(旧的名称是configure.in)写的有问题。
(然而,写Makefile.am也是要对Makefile很熟悉的,现在只是在简化工作,呵呵。)

关于AutoTools工具集,在Debian下有一个包,是一本书: autobook.可以看看,autoconf也有一个文档包,automake就暂时没有了,还有libtool, 和intltool都有文档的。

我本人,现在对于linux下的开发,觉得是要掌握一个工具链(tool chain)的,这个可以说是自己编程工具包(program toolbox)里的一部分,是要自己慢慢寻找、实践和总结的。
呵呵,总是现有某些方面的需求,再去有针对性的工作的。比如linux下的测试工具有哪些呢?(仅仅抛砖引玉而已,不敢多言)

pkg-config是一个管理库的工具,但是并不是所有的库都受它的管理,如果自己开发了一个库,也可以发布一个相关的.pc文件,然后安装到/usr/lib/pkgconfig/下,在那个目录下有多少的pc文件,就可以在configure.ac中使用PKG_CHECK_MODULES这个宏,加入项目所需的库,这个宏是由pkg-config提供的,不是autoconf的宏。(man pkg-config).使用的时候,要的是去掉.pc剩下的主文件名.

至于libglade库,我写代码也经历过几个阶段,一开始的时候用glade-2生成源代码,然后再改;  然后,我完全手写所有的代码,发现关于界面构造部分的代码,重复而且修改起来太麻烦,只要界面需要改动的话,就要重新编译,太烦; 现在我只用glade-2生成一个.glade文件,这是一个xml类型的文件,使用libglade库载入,可以快速的构造出原型,修改起来也方便,主要的精力可以放在设计上了,而不是那些界面上的构建了。

gnome不止是一个桌面,我更看好它是一个开放的开发平台,你说呢?各种库在一起使用,很由意思的。

个人的经验,说出来,和大家共同进步。呵呵。
发表于 2006-11-19 17:47:50 | 显示全部楼层
学到了 珍藏!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表