作業系統:Ubuntu 12/14
1、下載下傳書中的源代碼:點選下載下傳
2、編譯
tar -zxvf *.tar.gz
cd ./apue.3e
make
報錯:
can,t find -lbsd
解決辦法:
添加 libbsd.a 的靜态連結庫
sudo apt-get install libbsd-dev
3、繼續編譯
make
4、在編譯成功的基礎上,安裝 apue.h 檔案及其對應的靜态連結庫 libapue.a
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、環境搭建成功了,開始測試
gcc 1-3.c -o 1-3 -lapue #編譯時需要連結靜态庫libapue.a,libapue.a在這裡要寫成apue,具體的gcc使用規則可以 man 一下
6、看見1-3執行程式了吧,趕緊執行一下(本例1-3就是書上的第一個程式---ls程式)
./1-3 /lib

注意:
libbsd庫 需要到 http://pkgs.org/search/?query=libbsd&type=smart 确定下載下傳的版本,執行安裝(yum/apt-get)。
CentOS 6系列/x86_64,安裝 libbsd.a,參考代碼如下(注意安裝順序不要變):
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)