本文转载自:http://www.cnblogs.com/52php/p/5681701.html
操作系统:Ubuntu 12/14
1、下载书中的源代码:点击下载
2、编译
1
2
3
|
tar -zxvf *. tar .gz cd . /apue .3e make |
报错:
can,t find -lbsd
解决办法:
添加 libbsd.a 的静态链接库
1
|
sudo apt-get install libbsd-dev |
3、继续编译
1
|
make |
4、在编译成功的基础上,安装 apue.h 文件及其对应的静态链接库 libapue.a
1
2
|
sudo cp . /include/apue .h /usr/local/include/ sudo cp . /lib/libapue .a /usr/local/lib/ |
mac中,拷贝头文件 sudo cp ./include/apue.h /usr/local/include/
为什么要将 libapue.a 移到 /usr/local/lib 中呢?
因为 libapue.a 是 apue.h 头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。
查看 /etc/ld.so.conf.d/libc.conf 你会发现 gcc 在搜索链接库的时候默认会去搜索 /usr/local/lib/ 中的文件,所以我们将其放在这里,一劳永逸。
5、环境搭建成功了,开始测试
1
|
gcc 1-3.c -o 1-3 -lapue #编译时需要链接静态库libapue.a,libapue.a在这里要写成apue,具体的gcc使用规则可以 man 一下 |
6、看见1-3执行程序了吧,赶紧执行一下(本例1-3就是书上的第一个程序---ls程序)
1
|
. /1-3 /lib |
注意:
libbsd库 需要到 http://pkgs.org/search/?query=libbsd&type=smart 确定下载的版本,执行安装(yum/apt-get)。
CentOS 6系列/x86_64,安装 libbsd.a,参考代码如下(注意安装顺序不要变):
1
2
|
yum -y install libbsd-0.6.0-1.el6.art.x86_64.rpm yum -y install libbsd-devel-0.6.0-1.el6.art.x86_64.rpm |
参考:
http://blog.csdn.net/freestyle4568world/article/details/39269129
http://albertcn.blog.163.com/blog/static/209420145201410542016796
CLion 的 CMakeLists.txt 文件内容参考如下:
cmake_minimum_required(VERSION 2.8)
project(apue)set(SOURCE_FILES main.c)
add_executable(main ${SOURCE_FILES})include_directories(/usr/local/include)
target_link_libraries(main /usr/local/lib/libapue.a)