编译apue.3e缺少依赖库-lbsd
来源:互联网 发布:手机淘宝如何修改差评 编辑:程序博客网 时间:2024/06/10 14:00
出现错误如下:
making threadsmake[1]: Entering directory `/home/hhc/sharefile/apue.3e/threads'gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE badexit2.c -o badexit2 -L../lib -lapue -pthread -lrt -lbsd/usr/bin/ld: cannot find -lbsdcollect2: error: ld returned 1 exit statusmake[1]: *** [badexit2] Error 1make[1]: Leaving directory `/home/hhc/sharefile/apue.3e/threads'make: *** [all] Error 1那么,马上可以知道缺少-lbsd库,而且我的平台是ubantu 14.0.4 LTS
hhc@my:apue.3e$ sudo apt-get install libbslibbs2b0 libbsd-dev libbse-devlibbs2b-dev libbsd-resource-perl libbsf-javalibbsd0 libbse-0.7-4 libbsf-java-doclibbsd0-dbg libbsearch-ruby libbsh-javalibbsd-arc4random-perl libbsearch-ruby1.8 hhc@my:apue.3e$ sudo apt-get install libbsdlibbsd0 libbsd-arc4random-perl libbsd-resource-perllibbsd0-dbg libbsd-dev hhc@my:apue.3e$ sudo apt-get install libbsd-dev好了,现在已经成功安装了-lbsd库了,再次make。果断通过。
学习经验:这是学习了2个月linux后发现使用过程中的经验积累,这个依赖库问题,没有google和stackflow,完全是自己包办
所以,其实这些错误信息,很好地指导了我们进一步学习或者是修改(改善)错误。
继续深思,发现,linux开发(移植工具等)经常会出现依赖库问题:
点击链接 关于usr/bin/ld: cannot find -lxxx问题总结
是时候随意运行一个它提供的(也就是书本上的)程序
hhc@my:apue.3e$ ./threads/cleanupcleanup cleanup.c hhc@my:apue.3e$ ./threads/cleanupthread 1 startthread 1 push completethread 1 exit code 1thread 2 startthread 2 push completecleanup: thread 2 second handlercleanup: thread 2 first handlerthread 2 exit code 2
下面是终端操作过程:
使用apue非常简单,直接导入头文件,交代lib库即可。
hhc@my:testfile$ touch test.chhc@my:testfile$ lstest.chhc@my:testfile$ vim test.c hhc@my:testfile$ gcc -I /home/hhc/sharefile/apue.3e/include/ -L /home/hhc/sharefile/apue.3e/lib/ test.c -o test -lapuehhc@my:testfile$ ./test hello
然后,我的测试程序是:
#include <stdio.h> 1 #include "apue.h" 2 3 void main() 4 { 5 err_msg("hello"); 6 }该程序正是使用了apue/lib/libapue.a静态库,简单调动错误信息函数。
使用了几个函数后,发现,需要适当添加-g,毕竟要调试程序和进一步理解程序的运行情况,了解堆栈信息等等,
所以,make clean后对Make.defines.linux的CFLAGS添加-g参数,也可以通过make选项添加。
实力测试后
Reading symbols from ./threads/cleanup...done.(gdb) l36}3738int39main(void)40{41interr;42pthread_ttid1, tid2;43void*tret;4445err = pthread_create(&tid1, NULL, thr_fn1, (void *)1);(gdb) l46if (err != 0)47err_exit(err, "can't create thread 1");48err = pthread_create(&tid2, NULL, thr_fn2, (void *)1);
0 0
- 编译apue.3e缺少依赖库-lbsd
- 编译apue.3e问题/usr/bin/ld cannot find -lbsd
- APUE.3e书中源代码编译错误的解决
- apue.3e源码编译、环境配置(centos6.7)
- APUE.3e 安装 Ubuntu
- 编译和使用apue.3e源码并实现第一个ls.c程序
- 检查程序缺少依赖库
- APUE.2E 随书代码的编译方法
- apue.2e 源码在 Freebsd 9.0 下编译
- MacOS X 10.6 下 编译APUE代码清单(apue.2e 第二版源码)
- MacOS X 10.8 下 编译APUE代码清单(apue.2e 第二版源码)
- 电脑突然死机,编译报错dll缺少依赖项
- rpm 安装时提示缺少依赖库
- apue编译
- 编译APUE
- apue编译
- 不要依赖apue.h
- UNIX 环境高级编程(一) apue.h 文件与apue.3e的安装
- Spark RDD Transformation 简单用例(三)
- Page Differential Logging: 页差分读写技术(二)
- js点单验证
- JS知识点
- BottomNavigationView 的使用
- 编译apue.3e缺少依赖库-lbsd
- web前端攻击详解
- Hive的安装部署
- php解析Elasticsearch的返回值
- 浅谈IOC--说清楚IOC是什么
- 关于svn提交时候遇到的问题
- 【Scala】使用Option、Some、None,避免使用null
- git 远程版本库,github提供服务原理,git自动更新发送邮件
- UVA 10970 Big Chocolate 水 .