1.UNIX环境高级编程学习环境搭建---apue.h,unix---apue.h
2016-06-21 10:42
483 查看
本菜刚刚学习UNIX下高级编程,无奈搭建本书编程环境时遇到不少问题。幸好网上有各种大神的解决办法让我最终解决了问题。在这里感谢为LINUX开源操作系统奋斗的大神。
不过话说回来,网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说,有些过时,因为很对针对linux的make文件已经改变了很多。
话不多说,下面就来看看具体的搭建过程:(本人用的操作系统是ubuntu 14.04LTS)
1.在网上下载书中源代码,点击打开链接
2.解压文件:tar -zxvf *.tar.gz
3.cd apue.3e/
4.make
在这个过程中,你会看到最后由于can,t find -lbsd而不能make成功,解决办法是添加libbsd.a的静态链接库
5.make(again)
6.在编译成功的基础上,我们进行安装apue.h文件及其对应的静态链接库libapue.a
为什么要将libapue.a移到/usr/local/lib中呢?原因是libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。
查看ld.conf.d/libc.conf你会发现gcc在搜索链接库的时候默认会去搜索/usr/local/lib/中的文件,所以我们将其放在这里,一劳永逸。。。。(不过自己要知道哦)
7.以上环境搭建成功了,下面是测试。
8.gcc 1-3.c -o 1-3 -lapue (libapue.a在这里要写成apue,具体的gcc使用规则可以man一下,呵呵)
9.看见1-3执行程序了吧,赶紧执行一下
不过话说回来,网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说,有些过时,因为很对针对linux的make文件已经改变了很多。
话不多说,下面就来看看具体的搭建过程:(本人用的操作系统是ubuntu 14.04LTS)
1.在网上下载书中源代码,点击打开链接
2.解压文件:tar -zxvf *.tar.gz
3.cd apue.3e/
4.make
在这个过程中,你会看到最后由于can,t find -lbsd而不能make成功,解决办法是添加libbsd.a的静态链接库
sudo apt-get install libbsd-dev
5.make(again)
6.在编译成功的基础上,我们进行安装apue.h文件及其对应的静态链接库libapue.a
sudo cp ./include/apue.h /usr/include/ sudo cp ./lib/libapue.a /usr/local/lib/
为什么要将libapue.a移到/usr/local/lib中呢?原因是libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。
查看ld.conf.d/libc.conf你会发现gcc在搜索链接库的时候默认会去搜索/usr/local/lib/中的文件,所以我们将其放在这里,一劳永逸。。。。(不过自己要知道哦)
7.以上环境搭建成功了,下面是测试。
8.gcc 1-3.c -o 1-3 -lapue (libapue.a在这里要写成apue,具体的gcc使用规则可以man一下,呵呵)
9.看见1-3执行程序了吧,赶紧执行一下
./1-3 /lib
相关文章推荐
- 5款高效的原型设计工具
- java.net.BindException: Cannot assign requested address: JVM_Bind
- Qt quick实现无边框可拖拽风格
- easyui的自定义行工具栏
- UI控件之RadioButton(单选按钮)&Checkbox(复选按钮)
- iOS 设置UITextView显示文本的光标
- UItableViewCell的分割线顶头显示
- NGUI 拓展Poplist 插件
- ios UISegmentedControl的使用简介
- UIImagePickerController简单使用
- UUID的意义和作用
- private static final long serialVersionUID = 1L
- UIView中的坐标转换
- UIButton的详细使用
- iOS实战演练之Unknown type name 'UIColor" 的问题
- UIViewController的edgesForExtendedLayout属性
- iOS中长按调出菜单组件UIMenuController的使用实例
- [置顶] Java并发编程与技术内幕:ArrayBlockingQueue、LinkedBlockingQueue及SynchronousQueue源码解析
- SwipeRefreshLayout在onCreate使用setRefreshing(true)无效
- 描述Handler,Looper,MessageQueue,Message之间的关系