LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2043|回复: 7

anjuta不能编译gtk代码(如何设置编译连接选项)

[复制链接]
发表于 2006-6-28 10:34:31 | 显示全部楼层 |阅读模式
打开anjuta创建一个GTK 2.0 Project 或者Gnome 2.0 Project
项目(其他的没试),什么也不作,由于项目本身的原因,代码终会包含很多都文件,典型的有gtk.h或gnome.h,直接F9编译会出现很多错误,比如找不到gtk.h文件。如果选择F11创建,倒还可以生成可执行文件。
我现在就是搞不清楚“创建”菜单下的条目都干什么用,对应文本界面下的哪些命令?
还有,一旦创建一个项目以后,“设定”菜单下的“编译连接设定”中的第一页就不能使用,无法设置连接选项。这一页应该怎么用?

关于anjuta的文章太少,翻来覆去总是那两个文章,哪里有详细一点的帮助文档呢?(自带的英文帮助..................................)
 楼主| 发表于 2006-6-28 10:35:36 | 显示全部楼层
又发现一个新的问题,没想到anjuta这样麻烦。

我自定义了一个函数,放在myfun.c中,在myfun.h中有函数的声明,在callbacks.c中也添加了#include "myfun.h",而当在一个回调函数中调用这个函数时,make老是说我的那个函数没有定义。

我了解到如果回调函数中调用在interface.c中定义的构件是一件很麻烦的事,需要用到好几个gtk函数,难道调用一个其他文件中定义的函数也需要如此麻烦的步骤吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 16:24:29 | 显示全部楼层
细看才发现原来anjuta生成的makefile文件好像根本没有把我添加到anjuta工程中的文件myfun.c算进去,当执行连接这一步时,gcc后面只有默认的那几个文件的目标文件,我的myfun.c都没有编译生成.o
如果手工执行编译并连接什么问题都没有,可惜我实在看不懂那个makefile文件,要不然一定要好好分析一下。
anjuta生成makefile大概是使用autogen.sh这个脚本,既然我在工程中添加了我的文件myfun.c ,为什么连接会把他落掉呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 16:26:04 | 显示全部楼层
如果选择单个文件并执行“编译”,我的那个简单的myfun.c可以编译成功(anjuta使用的是cc),如果执行“创建”就只有main.c,interface.c,support.c和callbacks.c被编译并试图连接(anjuta使用make)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 16:56:02 | 显示全部楼层
靠,终于找到了!
原来在/src下还有个Makefile.am文件,里面有个文件列表,不知怎的其中没有我的myfun.c,仿照着添加上.c和.h两个文件,然后生成Mekefile,再make成功!
回复 支持 反对

使用道具 举报

发表于 2006-7-2 10:54:52 | 显示全部楼层
使用anjuta需要多试。
1.首先要建立项目。在文件-新增项目,然后利用程序精灵,生成需要的项目。如gtk 2.0项目。项目名称一定要给定,版本和用用户按需要给出,项目说明填写也很必要,如果真的开发项目应用的话。其余按默认完成即可。这时程序在用户主目录下的~/Projects目录下生成项目文件目录。在项目文件目录下生成一大堆文件,如NEW、TODO、Copying、INSTALL、README等,有用的有项目名.prj,项目名.glage、makefile、MakeFile.am、configure.in等等,熟悉linux开发的人可以仔细研究。另外生成autom4te.cache、po、src三个文件目录,其中最主要的是src。当然生成主要源代码及编译后的执行代码也放在此目录中。
2.生成项目文件完成后,anjuta将在build窗口中进行整个工程有关的文件代码生成工作,项目正常的话,可以build窗口中看到最后的结果Completed...successful以及所用时间等等信息。这时anjuta打开屏幕左边中间的项目窗口,及源代码树。这时可以看到源代码-src目录树下有:callback。h、callback.c、interface.c、interface.h、main.c、support.h、support.c七个文件。这时如果只简单的进行工程生成的话,可以在“创建”菜单项目进行。一般操作次序(首次)为:配置-生成建程文件-创建项目即可。以后每次修改代码后可直接用F11即可编译生成。
3.如果项目很大,有很多头文件以及许多源代码文件的话。这时可以移动鼠标到项目窗口中,在source-src目录上点击右键,在弹出菜单中选择addfile,依照开用户选择增加的文件类型打开文件对话框进行增加,一般情况下增加的文件最后在src目录下,如果在其它目录下,需要在“设定”菜单内的选项里“源代码路径设定”进行设定,这方面的用户可以耐心地去设置,一般不难。增加文件完成后,要再一次生成建成文件项目,重新使用创建项目菜单生成即可。
4.熟悉“设定”菜单内的各菜单项很重要,不然有些程序由于缺少相应的库而不能成功编译。如要进行mysql数据库开发,就可以在“编译器连接器设定”中的“引用路径”页,增加/usr/include/mysql。在“函数库路径”页,增加/usr/lib/mysql,在“函数库”页,增加mysqlclient,就可以编译mysql数据应用项目了。
回复 支持 反对

使用道具 举报

发表于 2006-8-15 13:07:51 | 显示全部楼层
太好了,高人!
回复 支持 反对

使用道具 举报

发表于 2006-8-22 22:48:38 | 显示全部楼层
转载自: http://blog.csdn.net/bat603/archive/2006/08/22/1106920.aspx

用 anjuta 编译程序时会出现类似与"main.c::10:21:gtk/gtk.h:没有那个文件和目录",但是可以使用 创建并且能执行程序.产生的原因是因为 'pkg-config --cflags gtk-2.0' 惹的祸,因为anjuta在编译时并没有把这个命令输入,解决办法是:
在菜单 设定--commands 中的 compile 项的末尾加入 'pkg-config --cflags gtk-2.0' 注意单引号.
即可.
回复 支持 反对

使用道具 举报

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

本版积分规则

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