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

2018 年 9 月 20 日
 simple2025

环境: 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

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

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

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

https://v2ex.xtra.eu.org/t/491197

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

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

© 2021 V2EX