【已解决】Eclipse通过Makefile调用交叉编译器交叉编译C项目出错:Type ‘FILE’ could not be resolved

【问题】

折腾:

【记录】Ubuntu下使用Eclipse编译项目

期间,通过makefile去build all的时候,出错了:

Description    Resource    Path    Location    Type
Type ‘FILE’ could not be resolved    wbmport.c    /HART-IP/WBM/Src    line 357    Semantic Error

Type FILE could not be resolved

【解决过程】

1.参考:

Type ‘FILE’ could not be resolved

确定,FILE是包含在stdio.h中的。

所以,要去确保,此头文件的路径是Eclipse中正确配置了的。

2.然后去看了看当前的配置:

c c   builder environment

好像也没搞清楚,如何添加。

3.参考:

eclipse error: * could not be resolved

去看看配置。

此处是C项目,所以只去选择那个:

Index unused headers as C files

indexer index unused headers as C files

然后重新编译一次试试。

结果问题依旧。

所以还是恢复到之前的配置:

选中:Index unused headers as C++ files

不选:Index unused headers as C files

且是不选中:

Enable project specific settings

not select enalble project specific settings

4.然后,突然发现,其实,此处,虽然提示错误,但是实际上,已经变成成功,生成对应的文件了:

already see the exe file

所以,此处的错误,其实是可以忽略的。

但是还是要努力搞清楚才可以的。

5.然后,突然,想起来了,此处,是自己手动设置的交叉编译器

arm-xscale-linux-gnueabi

的,但是对应的,交叉编译器的头文件的路径,却没有添加进来。

所以去看看,通过:

【记录】Ubuntu中尝试在/opt/crosscompile/xscale中找stdio.h

而找到stdio.h所在路径:

crifan@ubuntu:xscale$ find . -name stdio.h
./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/include/c++/4.6.0/tr1/stdio.h
./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/stdio.h
./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/bits/stdio.h
crifan@ubuntu:xscale$ find . -iname stdio.h
./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/include/c++/4.6.0/tr1/stdio.h
./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/stdio.h
./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/bits/stdio.h
crifan@ubuntu:xscale$ ls -lha ./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/
total 32K
dr-xr-xr-x  8 crifan crifan 4.0K Aug  8 00:47 .
dr-xr-xr-x  6 crifan crifan 4.0K Aug  8 00:47 ..
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 bin
dr-xr-xr-x 30 crifan crifan 4.0K Aug  8 00:55 include
dr-xr-xr-x  4 crifan crifan 4.0K Aug  8 00:55 lib
lrwxrwxrwx  1 crifan crifan    3 Aug  7 23:57 lib32 -> lib
lrwxrwxrwx  1 crifan crifan    3 Aug  7 23:57 lib64 -> lib
dr-xr-xr-x  3 crifan crifan 4.0K Aug  8 00:47 libexec
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 sbin
dr-xr-xr-x  4 crifan crifan 4.0K Aug  8 01:10 share
crifan@ubuntu:xscale$ ls -lha ./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/
total 1.5M
dr-xr-xr-x 30 crifan crifan 4.0K Aug  8 00:55 .
dr-xr-xr-x  8 crifan crifan 4.0K Aug  8 00:47 ..
-r--r--r--  1 crifan crifan 7.4K Aug  8 00:47 aio.h
-r--r--r--  1 crifan crifan 2.1K Aug  8 00:47 aliases.h
-r--r--r--  1 crifan crifan 1.3K Aug  8 00:47 alloca.h
-r--r--r--  1 crifan crifan  14K Aug  8 00:55 ansidecl.h
-r--r--r--  1 crifan crifan 4.3K Aug  8 00:47 a.out.h
-r--r--r--  1 crifan crifan  26K Aug  8 00:47 argp.h
-r--r--r--  1 crifan crifan 7.2K Aug  8 00:47 argz.h
-r--r--r--  1 crifan crifan 1.8K Aug  8 00:47 ar.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 arpa
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:37 asm
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:37 asm-generic
-r--r--r--  1 crifan crifan 3.5K Aug  8 00:47 assert.h
-r--r--r--  1 crifan crifan 204K Aug  8 00:55 bfd.h
-r--r--r--  1 crifan crifan  30K Aug  8 00:55 bfdlink.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 bits
-r--r--r--  1 crifan crifan 1.5K Aug  8 00:47 byteswap.h
-r--r--r--  1 crifan crifan 3.5K Aug  8 00:47 complex.h
-r--r--r--  1 crifan crifan 2.3K Aug  8 00:47 cpio.h
-r--r--r--  1 crifan crifan 2.3K Aug  8 00:47 crypt.h
-r--r--r--  1 crifan crifan  12K Aug  8 00:47 ctype.h
-r--r--r--  1 crifan crifan  11K Aug  8 00:47 dirent.h
-r--r--r--  1 crifan crifan 7.0K Aug  8 00:47 dlfcn.h
-r--r--r--  1 crifan crifan  35K Aug  8 00:55 dmalloc.h
-r--r--r--  1 crifan crifan 111K Aug  8 00:47 elf.h
-r--r--r--  1 crifan crifan 3.0K Aug  8 00:47 endian.h
-r--r--r--  1 crifan crifan 2.9K Aug  8 00:47 envz.h
-r--r--r--  1 crifan crifan 2.3K Aug  8 00:47 err.h
-r--r--r--  1 crifan crifan 2.4K Aug  8 00:47 errno.h
-r--r--r--  1 crifan crifan 2.1K Aug  8 00:47 error.h
-r--r--r--  1 crifan crifan 1.6K Aug  8 00:47 execinfo.h
-r--r--r--  1 crifan crifan 7.3K Aug  8 00:47 fcntl.h
-r--r--r--  1 crifan crifan  12K Aug  8 00:47 features.h
-r--r--r--  1 crifan crifan 4.6K Aug  8 00:47 fenv.h
-r--r--r--  1 crifan crifan 3.3K Aug  8 00:47 fmtmsg.h
-r--r--r--  1 crifan crifan 2.5K Aug  8 00:47 fnmatch.h
-r--r--r--  1 crifan crifan 2.0K Aug  8 00:47 fpu_control.h
-r--r--r--  1 crifan crifan 3.1K Aug  8 00:47 fstab.h
-r--r--r--  1 crifan crifan 5.2K Aug  8 00:47 fts.h
-r--r--r--  1 crifan crifan 5.3K Aug  8 00:47 ftw.h
-r--r--r--  1 crifan crifan 2.5K Aug  8 00:47 _G_config.h
-r--r--r--  1 crifan crifan 5.3K Aug  8 00:47 gconv.h
-r--r--r--  1 crifan crifan   25 Aug  8 00:54 gelf.h
-r--r--r--  1 crifan crifan 6.0K Aug  8 00:47 getopt.h
-r--r--r--  1 crifan crifan 6.9K Aug  8 00:47 glob.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 gnu
-r--r--r--  1 crifan crifan 2.4K Aug  8 00:47 gnu-versions.h
-r--r--r--  1 crifan crifan 6.8K Aug  8 00:47 grp.h
-r--r--r--  1 crifan crifan 2.0K Aug  8 00:47 iconv.h
-r--r--r--  1 crifan crifan 4.9K Aug  8 00:47 ieee754.h
-r--r--r--  1 crifan crifan 2.9K Aug  8 00:47 ifaddrs.h
-r--r--r--  1 crifan crifan  12K Aug  8 00:47 inttypes.h
-r--r--r--  1 crifan crifan  16K Aug  8 00:47 langinfo.h
-r--r--r--  1 crifan crifan  126 Aug  8 00:47 lastlog.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:54 libelf
-r--r--r--  1 crifan crifan   27 Aug  8 00:54 libelf.h
-r--r--r--  1 crifan crifan 1.5K Aug  8 00:47 libgen.h
-r--r--r--  1 crifan crifan 4.6K Aug  8 00:47 libintl.h
-r--r--r--  1 crifan crifan  18K Aug  8 00:47 libio.h
-r--r--r--  1 crifan crifan 4.5K Aug  8 00:47 limits.h
-r--r--r--  1 crifan crifan 7.1K Aug  8 00:47 link.h
dr-xr-xr-x 15 crifan crifan  16K Aug  8 00:37 linux
-r--r--r--  1 crifan crifan 7.9K Aug  8 00:47 locale.h
-r--r--r--  1 crifan crifan 6.0K Aug  8 00:47 malloc.h
-r--r--r--  1 crifan crifan  16K Aug  8 00:47 math.h
-r--r--r--  1 crifan crifan 2.5K Aug  8 00:47 mcheck.h
-r--r--r--  1 crifan crifan 1.1K Aug  8 00:47 memory.h
-r--r--r--  1 crifan crifan 3.4K Aug  8 00:47 mntent.h
-r--r--r--  1 crifan crifan 1.8K Aug  8 00:47 monetary.h
-r--r--r--  1 crifan crifan 3.8K Aug  8 00:47 mqueue.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:37 mtd
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 net
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netash
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netatalk
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netax25
-r--r--r--  1 crifan crifan  27K Aug  8 00:47 netdb.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 neteconet
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netinet
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netipx
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netiucv
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netpacket
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netrom
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 netrose
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 nfs
-r--r--r--  1 crifan crifan   26 Aug  8 00:54 nlist.h
-r--r--r--  1 crifan crifan 1.8K Aug  8 00:47 nl_types.h
-r--r--r--  1 crifan crifan 2.0K Aug  8 00:47 nss.h
-r--r--r--  1 crifan crifan  20K Aug  8 00:47 obstack.h
-r--r--r--  1 crifan crifan 2.9K Aug  8 00:47 paths.h
-r--r--r--  1 crifan crifan   22 Aug  8 00:47 poll.h
-r--r--r--  1 crifan crifan 5.1K Aug  8 00:47 printf.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 protocols
-r--r--r--  1 crifan crifan  39K Aug  8 00:47 pthread.h
-r--r--r--  1 crifan crifan 1.6K Aug  8 00:47 pty.h
-r--r--r--  1 crifan crifan 6.0K Aug  8 00:47 pwd.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:37 rdma
-r--r--r--  1 crifan crifan 1.0K Aug  8 00:47 re_comp.h
-r--r--r--  1 crifan crifan  22K Aug  8 00:47 regex.h
-r--r--r--  1 crifan crifan 7.0K Aug  8 00:47 regexp.h
-r--r--r--  1 crifan crifan  15K Aug  8 00:47 resolv.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 rpc
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 rpcsvc
-r--r--r--  1 crifan crifan 4.6K Aug  8 00:47 sched.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 scsi
-r--r--r--  1 crifan crifan 5.2K Aug  8 00:47 search.h
-r--r--r--  1 crifan crifan 2.5K Aug  8 00:47 semaphore.h
-r--r--r--  1 crifan crifan 3.9K Aug  8 00:47 setjmp.h
-r--r--r--  1 crifan crifan 1.4K Aug  8 00:47 sgtty.h
-r--r--r--  1 crifan crifan 5.2K Aug  8 00:47 shadow.h
-r--r--r--  1 crifan crifan  14K Aug  8 00:47 signal.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:37 sound
-r--r--r--  1 crifan crifan 6.6K Aug  8 00:47 spawn.h
-r--r--r--  1 crifan crifan  264 Aug  8 00:47 stab.h
-r--r--r--  1 crifan crifan 8.4K Aug  8 00:47 stdint.h
-r--r--r--  1 crifan crifan 2.9K Aug  8 00:47 stdio_ext.h
-r--r--r--  1 crifan crifan  31K Aug  8 00:47 stdio.h
-r--r--r--  1 crifan crifan  32K Aug  8 00:47 stdlib.h
-r--r--r--  1 crifan crifan  17K Aug  8 00:47 string.h
-r--r--r--  1 crifan crifan 2.5K Aug  8 00:47 strings.h
-r--r--r--  1 crifan crifan 3.1K Aug  8 00:47 stropts.h
-r--r--r--  1 crifan crifan 2.2K Aug  8 00:55 symcat.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:47 sys
-r--r--r--  1 crifan crifan   25 Aug  8 00:47 syscall.h
-r--r--r--  1 crifan crifan 5.2K Aug  8 00:47 sysexits.h
-r--r--r--  1 crifan crifan   24 Aug  8 00:47 syslog.h
-r--r--r--  1 crifan crifan 3.7K Aug  8 00:47 tar.h
-r--r--r--  1 crifan crifan  214 Aug  8 00:47 termio.h
-r--r--r--  1 crifan crifan 3.6K Aug  8 00:47 termios.h
-r--r--r--  1 crifan crifan  19K Aug  8 00:47 tgmath.h
-r--r--r--  1 crifan crifan  16K Aug  8 00:47 thread_db.h
-r--r--r--  1 crifan crifan  14K Aug  8 00:47 time.h
-r--r--r--  1 crifan crifan 2.5K Aug  8 00:47 ttyent.h
-r--r--r--  1 crifan crifan 2.0K Aug  8 00:47 ucontext.h
-r--r--r--  1 crifan crifan 1.7K Aug  8 00:47 ulimit.h
-r--r--r--  1 crifan crifan  40K Aug  8 00:47 unistd.h
-r--r--r--  1 crifan crifan   23 Aug  8 00:47 ustat.h
-r--r--r--  1 crifan crifan 1.6K Aug  8 00:47 utime.h
-r--r--r--  1 crifan crifan 3.3K Aug  8 00:47 utmp.h
-r--r--r--  1 crifan crifan 4.2K Aug  8 00:47 utmpx.h
-r--r--r--  1 crifan crifan 2.0K Aug  8 00:47 values.h
dr-xr-xr-x  2 crifan crifan 4.0K Aug  8 00:37 video
-r--r--r--  1 crifan crifan   22 Aug  8 00:47 wait.h
-r--r--r--  1 crifan crifan  30K Aug  8 00:47 wchar.h
-r--r--r--  1 crifan crifan  11K Aug  8 00:47 wctype.h
-r--r--r--  1 crifan crifan 2.6K Aug  8 00:47 wordexp.h
-r--r--r--  1 crifan crifan 1.7K Aug  8 00:47 xlocale.h
crifan@ubuntu:xscale$ 

所以,去把对应的路径:

crifan@ubuntu:xscale$ cd ./gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/
crifan@ubuntu:include$ pwd
/opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include

加到include中:

add include path to project

gnu c include path added

然后再去编译试试,能否消除错误。

6.结果错误依旧。

所以,再去给GNU C++,也去添加此路径:

注意,此处是针对整个项目HART-IP其下的子项目WBM而添加的:

add for gnu c   include path

再重新编译试试。

结果有变化:

没有任何警告和others了,且也可以通过Ctrl+鼠标点击,找到stdio.h了:

can find stdio.h and 0 warning 0 others

但是错误依旧。

7.再去给整个项目HART-IP去添加对应的GNU C++的include路径,结果还会提示,其会导致重新编译:

change gnu c   include will rebuild yes

然后重新编译试试,结果问题依旧。

8.后来注意到,即使给整个项目HART-IP去添加了GNU C和GNU C++的include路径,结果子项目WBM中,还是空的:

wbm project path gnu c empty

即,还需要自己手动添加:

add include path for wbm paths gnu c

然后再重新编译试试。

结果是问题依旧错误,但是却减少了waring和others了:

only 1 warning and 0 others

所以是有点效果的。

然后才注意到,其实此刻,真的,的确修复了那个:

Type ‘FILE’ could not be resolved

的问题:

indeed fix file not found

即:

由于添加了合适的include文件夹,而使得可以找到了stdio.h了,而可以找到FILE了,从而解决了问题了。

余下的那些错误,是别的错误,需要后续再去解决。

 

【总结】

此处,Eclipse中,一个C项目,用的makefile调用的交叉编译器arm-xscale-linux-gnueabi去编译,结果出错:

Type ‘FILE’ could not be resolved

的原因是:

FILE的定义在stdio.h中,而此处没有指定合适的stdio.h的include路径。

解决办法:

(通过find而找到stdio.h:

【记录】Ubuntu中尝试在/opt/crosscompile/xscale中找stdio.h

从而找到此处交叉编译器的)include所在路径,加到项目的include中

步骤:

右击项目(注意不是总的项目,而是当前的项目)->Properties->C/C++ General->Paths and Symbols->Include->给GNU C和GNU C++,都去Add对应的路径,此处是:

/opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include

即可。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量