天天看點

《UNIX環境進階程式設計第三版》apue.h等源碼檔案的編譯安裝

作業系統: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
      
《UNIX環境進階程式設計第三版》apue.h等源碼檔案的編譯安裝

注意:

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)

繼續閱讀