免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5004 | 回复: 12
打印 上一主题 下一主题

[C] 这个怎么编译? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-11 09:10 |只看该作者 |倒序浏览
我添加了readline库。所以加了 -lreadline参数,可以编译通过。
  1. sgq@sgq-PC-MY28VCZEE:~$ gcc ladsh.c -o ladsh -lreadline
  2. ladsh.c: In function ‘getCommand’:
  3. ladsh.c:85:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘char *’ [-Wformat]
  4. ladsh.c:116:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘char *’ [-Wformat]
  5. ladsh.c: In function ‘main’:
  6. ladsh.c:726:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘char *’ [-Wformat]
  7. ladsh.c:731:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘char *’ [-Wformat]
复制代码
但是这次需要用客户指定的gcc来编译,找不到这些头文件?有什么办法?
  1. sgq@sgq-PC-MY28VCZEE:~$ /usr/src/alta/toolchain/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-gcc
  2. ladsh.c -o ladsh -lreadline
  3. ladsh.c:15:30: error: readline/history.h: No such file or directory
  4. ladsh.c:16:31: error: readline/readline.h: No such file or directory
  5. ladsh.c: In function 'getCommand':
  6. ladsh.c:107: warning: assignment makes pointer from integer without a cast
  7. sgq@sgq-PC-MY28VCZEE:~$
复制代码
谢谢

论坛徽章:
0
2 [报告]
发表于 2012-10-11 09:25 |只看该作者
编译交叉编译所需的readline库,然后编译的时候指定一下

论坛徽章:
0
3 [报告]
发表于 2012-10-11 09:39 |只看该作者
兄弟,我也知道指定一下,我是问,怎么指定?

指定方法,我不懂哈。


论坛徽章:
0
4 [报告]
发表于 2012-10-11 09:43 |只看该作者
找不到头文件,gcc -Ireadline/ 把这个头文件目录的路径给它

论坛徽章:
0
5 [报告]
发表于 2012-10-11 10:06 |只看该作者
-L libpath -llib -Iincludepath

论坛徽章:
0
6 [报告]
发表于 2012-10-11 10:11 |只看该作者
  1. sgq@sgq-PC-MY28VCZEE:/$ find . -name "readline.h" -print
  2. ./usr/include/readline/readline.h
  3. ./usr/local/include/readline/readline.h
  4. ./usr/local/src/readline-6.2/readline.h
  5. find: `./usr/src/alta/toolchain/buildroot-2009.05/p4_5350_back0830_6.1.3/common/apps/dropbear-0.52': Permission denied
  6. ./usr/src/alta/toolchain/buildroot-2009.05/build_mips/bash-3.2/lib/readline/readline.h
  7. ^C
  8. sgq@sgq-PC-MY28VCZEE:/$ cd ~
  9. sgq@sgq-PC-MY28VCZEE:~$ /usr/src/alta/toolchain/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-gcc ladsh.c -o ladsh -I/usr/include/readline
  10. ladsh.c:15:30: error: readline/history.h: No such file or directory
  11. ladsh.c:16:31: error: readline/readline.h: No such file or directory
  12. ladsh.c: In function 'getCommand':
  13. ladsh.c:107: warning: assignment makes pointer from integer without a cast
  14. sgq@sgq-PC-MY28VCZEE:~$ /usr/src/alta/toolchain/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-gcc ladsh.c -o ladsh -I/usr/local/include/readline
  15. ladsh.c:15:30: error: readline/history.h: No such file or directory
  16. ladsh.c:16:31: error: readline/readline.h: No such file or directory
  17. ladsh.c: In function 'getCommand':
  18. ladsh.c:107: warning: assignment makes pointer from integer without a cast
  19. sgq@sgq-PC-MY28VCZEE:~$ /usr/src/alta/toolchain/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-gcc ladsh.c -o ladsh -I/usr/local/src/readline-6.2
  20. ladsh.c:15:30: error: readline/history.h: No such file or directory
  21. ladsh.c:16:31: error: readline/readline.h: No such file or directory
  22. ladsh.c: In function 'getCommand':
  23. ladsh.c:107: warning: assignment makes pointer from integer without a cast
  24. sgq@sgq-PC-MY28VCZEE:~$
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-10-11 10:18 |只看该作者
奇怪了

#include ""改成#include <>?

难道是这个GCC不吃?{:3_189:}

论坛徽章:
0
8 [报告]
发表于 2012-10-11 10:31 |只看该作者
/usr/src/alta/toolchain/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-gcc ladsh.c -o ladsh -I/usr/include/
这样子大概能找到头文件,但是估计链接的时候会出错

论坛徽章:
0
9 [报告]
发表于 2012-10-11 10:49 |只看该作者
0xC1988 发表于 2012-10-11 10:31
/usr/src/alta/toolchain/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-gcc ladsh ...


对对对,我搞错了

文件里面是"readline/xxx.h",不需要加这个readline的子目录了

ld的时候制定-L就应该可以吧

论坛徽章:
0
10 [报告]
发表于 2012-10-11 10:52 |只看该作者
lxyscls_cu 发表于 2012-10-11 10:49
对对对,我搞错了

文件里面是"readline/xxx.h",不需要加这个readline的子目录了


对,用-L指定链接库的目录,再加上-l指定连接的库

其实可以看看buildboot里面是不是提供了readline的选项,有的话可以方便很多
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP