遇到一个不知道是 C 语言还是 android 的问题

2018-09-20 14:49:23 +08:00
 chenqh

环境: win10, cygwin

运行make命令之后

gcc -o shellAdder1 shellAdder1.c
shellAdder1.c:3:17: fatal error: elf.h: No such file or directory
 #include <elf.h>
                 ^
compilation terminated.
make: *** [makefile:2: all] Error 1

求大佬们指点下我该怎么解决?

9177 次点击
所在节点    Android
15 条回复
andrewhxism
2018-09-20 15:09:00 +08:00
是你的问题
你要指定 elf.h 的路径,而这个路径显然不在标准库的路径里,不能使用尖括号。
假设你有 elf.h,及对应的库文件(.a .o .lib .so )等,使用#include "/home/elf.h",并在链接时加上前面说的 lib 即可编译通过并运行。
chenqh
2018-09-20 15:10:11 +08:00
@andrewhxism 这个 elf 在 windows 是通过什么安装的?
andrewhxism
2018-09-20 15:11:03 +08:00
@chenqh 我哪知道~
kokutou
2018-09-20 15:18:33 +08:00
搞 c 建议 virtualBox 虚拟机装个 Ubuntu,很多问题都不会碰到。
chenqh
2018-09-20 15:22:34 +08:00
@kokutou 我是学习 androidC
Deville
2018-09-20 15:22:38 +08:00
一定是锤子的问题
chenqh
2018-09-20 15:23:09 +08:00
@andrewhxism 知道是怎么回事了,我 gcc 不对,我用的是 mingmw 的那个 gcc,所以出了问题。。
aa514758835
2018-09-20 16:17:21 +08:00
应该是那个头文件是不存在或者名字错了吧~
misaka19000
2018-09-20 16:39:01 +08:00
elf 听起来应该在 Linux 环境中使用
F1024
2018-09-20 16:49:45 +08:00
elf.h: No such file or directory
lackywind
2018-09-20 17:05:52 +08:00
elf 就是 android so 库的文件结构,linux 下的 bin 也是 elf,先自己环境看看有没有这个头文件喽,没有就去网上拉个丢进目录,比如这种
https://android.googlesource.com/platform/art/+/master/runtime/elf.h
nealwx
2018-09-20 17:06:11 +08:00
你要是放在 Android 上跑,你得配交叉编译环境的吧
sxsexe
2018-09-20 17:14:29 +08:00
makefile 里先把路径 include 进来吧
flynaj
2018-09-20 18:48:07 +08:00
建议你好好学习一下 c,你连基本知识都不清楚
socradi
2018-09-21 09:35:45 +08:00
我这里是可以的,你检查一下编译器是否装好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/491197

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX