ubuntu下eclipse-C编译中头文件找不到的问题

SaltyEgg 发布于 2011/10/07 11:15
阅读 7K+
收藏 0

最近从windows改到ubuntu11.04的平台,在ubuntu平台下使用eclipse试写C程序。

http://www.pudn.com/downloads203/sourcecode/unix_linux/detail953831.html处下了一个例子测试。【我提供一个账号给大家登陆下载:oschina2011,密码:oschina123】

然后出现了一下的问题:

那些头文件,编程环境已经识别,但是这些

为什么却识别不了。

还有个和费解的问题是,就是网上给的所有例子几乎都是#include<glade/glade.h>但我的必须改成#include<libglade-2.0/glade/glade.h>(如第一个大图,图中有四个这一的情况),我是不是哪个地方做错了。

还有这个问题,明明哪个文件就在目录下面,但是eclipse为什么一直说文件不存在。

其中这些引用头文件(glib.h中),eclipse都报错说不存在。

最后再放一个我不是很明白的错误截图:

希望大家能帮我看看是哪的问题,我纠结了一个国庆。在此真诚的感谢大家!^_^

以下是问题补充:

@SaltyEgg:谢谢大家热心的回复,那个起初的问题差不多解决了。 谢谢大家,但是新的问题又来了。 **** Build of configuration Debug for project gtkbrowser **** make all Building file: ../glibcurl.c Invoking: Cross GCC Compiler gcc -I/usr/include/cairo -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"glibcurl.d" -MT"glibcurl.d" -o "glibcurl.o" "../glibcurl.c" Finished building: ../glibcurl.c Building file: ../main.c Invoking: Cross GCC Compiler gcc -I/usr/include/cairo -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.c" ../main.c:152:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token ../main.c: In function ‘curlCallback’: ../main.c:181:6: warning: implicit declaration of function ‘html_stream_close’ ../main.c: In function ‘curlWriter’: ../main.c:195:3: warning: implicit declaration of function ‘html_stream_write’ ../main.c:197:3: warning: implicit declaration of function ‘html_document_write_stream’ ../main.c:197:31: error: ‘g_document’ undeclared (first use in this function) ../main.c:197:31: note: each undeclared identifier is reported only once for each function it appears in ../main.c: In function ‘locale_file_name’: ../main.c:226:2: warning: pointer targets in passing argument 4 of ‘g_locale_from_utf8’ differ in signedness /usr/include/glib/gconvert.h:119:8: note: expected ‘gsize *’ but argument is of type ‘int *’ ../main.c: In function ‘on_comb_editing_done’: ../main.c:246:4: warning: implicit declaration of function ‘html_view_set_document’ ../main.c:246:4: warning: implicit declaration of function ‘HTML_VIEW’ ../main.c:247:4: warning: implicit declaration of function ‘html_document_clear’ ../main.c:247:25: error: ‘g_document’ undeclared (first use in this function) ../main.c:249:4: warning: implicit declaration of function ‘html_document_open_stream’ ../main.c: At top level: ../main.c:258:39: error: expected ‘)’ before ‘*’ token ../main.c:263:44: error: expected ‘)’ before ‘*’ token ../main.c:297:26: error: expected ‘)’ before ‘*’ token ../main.c: In function ‘on_comb_changed’: ../main.c:312:9: warning: type defaults to ‘int’ in declaration of ‘iitem’ ../main.c:320:25: error: ‘g_document’ undeclared (first use in this function) ../main.c: In function ‘on_okbut_clicked’: ../main.c:339:25: error: ‘g_document’ undeclared (first use in this function) ../main.c: In function ‘on_open_activate’: ../main.c:398:25: error: ‘g_document’ undeclared (first use in this function) ../main.c: In function ‘main’: ../main.c:440:2: warning: implicit declaration of function ‘gtk_html_context_get’ ../main.c:443:2: error: ‘g_document’ undeclared (first use in this function) ../main.c:443:2: warning: implicit declaration of function ‘html_document_new’ ../main.c:444:2: error: ‘url_requested’ undeclared (first use in this function) ../main.c:446:2: error: ‘link_clicked’ undeclared (first use in this function) ../main.c:468:2: warning: implicit declaration of function ‘html_view_new’ ../main.c:468:9: warning: assignment makes pointer from integer without a cast ../main.c:469:2: error: ‘request_object’ undeclared (first use in this function) make: *** [main.o] Error 1 **** Build Finished **** 我几乎翻遍了project中的所有头文件,都没有找到‘html_document_write_stream’之类的函数声明,有没有研究过那段代码的人了解情况啊? 再次感谢大家。 (2011/10/08 10:00)
@SaltyEgg:http://dl.dbank.com/c0cauzdmb9 我把那个源码放到网盘上了,嗯,谢谢你的热心,我现在知道怎么添加lib引用,但是貌似那个引用的lib我找不到! 我是新手,给大家添麻烦了!^_^ (2011/10/08 17:44)
@SaltyEgg:http://dl.dbank.com/c0cauzdmb9 我把那个源码放到网盘上了,嗯,谢谢你的热心,我现在知道怎么添加lib引用,但是貌似那个引用的lib我找不到! 我是新手,给大家添麻烦了!^_^ (2011/10/08 17:44)
@SaltyEgg:交叉编译是什么意思啊? 大侠,你那个编译链接成功吗? ^_^ (2011/10/10 22:36)
加载中
1
匿名人士
匿名人士

根据include ,你需要定位这些文件

#include <gtk/gtk.h>
#include <glade/glade.h>
#include <stdio.h>
#include <string.h>
#include <libgen.h>
#include <libgtkhtml/gtkhtml.h>
#include <curl/curl.h>

请使用 $ whereis gtk.h 查找头文件位置,加入 include path,

然后查找相对应的库 $ whereis libgtk.a 加入library,libraries path

为什么我看到你的build message 显示 cross compile?

0
LastRitter
LastRitter
要设置源文件搜索路径,也就是GCC的-I选项;还有就是库的版本不一致。
0
Ruchee
Ruchee

把执行 pkg-config --libs --cflags gtk+-2.0 得出的路径信息在Eclipse的项目设置中进行添加

可以参考《使用Eclipse进行GTK+编程》,这是在XP下的设置方法,不过Linux下也大同小异,希望能够帮到你

0
匿名人士
匿名人士

请根据你需要的库,在项目属性中设置 include path,library path ,libraries

别以为linux 你就可以不设置include了

0
匿名人士
匿名人士

哥,你真是个人才 我给你示范加入include 路径,你就不能自己加入libraries,librariey paths?

抱歉没法下载,你能不能提供那个源码包瞅瞅

0
Lufy-Spiderman
Lufy-Spiderman
你看看你的软件,有没有安装到usr/include下
返回顶部
顶部