1. 程式人生 > 實用技巧 >LwIP的編譯記錄-動態庫

LwIP的編譯記錄-動態庫

1. 進入目錄

[plh@localhost build]$ cd /tmp/LwIP/contrib-2.1.0/ports/unix/lib/
[plh@localhost lib]$ mkdir build
[plh@localhost lib]$ cd build/

2.編譯有兩種方法

[方法1]: 預設是沒有詳細的編譯日誌和不能gdb除錯的
[plh@localhost build]$ cmake ..
[plh@localhost build]$ make

[方法2]: 列印詳細的編譯日誌和方便gdb除錯
[plh@localhost build]$ vi CMakeCache.txt
CMAKE_BUILD_TYPE:STRING=Debug
CMAKE_VERBOSE_MAKEFILE:BOOL=ON
[plh@localhost build]$cmake ..
[plh@localhost build]$make clean && make

3.編譯成功後的輸出檔案

[plh@localhost build]$ ls -al lib*
-rwxrwxr-x. 1 plh plh 442248 12月 23 11:07 liblwip.so

4.其中一條詳細的編譯log

 1 其中一條編譯的詳細log
 2 [  0%] Building C object CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/init.c.o
 3 /usr/bin/cc -DLWIP_DEBUG -Dlwip_EXPORTS 
 4 -I/tmp/LwIP/contrib-2.1.0/ports/unix/lib/../../../../lwip/src/include 
5 -I/tmp/LwIP/contrib-2.1.0/ports/unix/lib/../../.. 6 -I/tmp/LwIP/contrib-2.1.0/ports/unix/lib/../../../ports/unix/port/include 7 -I/tmp/LwIP/contrib-2.1.0/ports/unix/lib 8 -g -fPIC -g -Wall -pedantic -Werror -Wparentheses -Wsequence-point -Wswitch-default -Wextra -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wc++-compat -Wwrite-strings -Wold-style-definition -Wcast-align -Wmissing-prototypes -Wnested-externs -Wunreachable-code -Wuninitialized -Waggregate-return -Wredundant-decls -Wlogical-op -Wtrampolines
9 -o CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/init.c.o 10 -c /tmp/LwIP/lwip/src/core/init.c 11 12 這裡重點關注包含的標頭檔案 13 [plh@localhost build]$ ls -al /tmp/LwIP/contrib-2.1.0/ports/unix/lib/../../../../lwip/src/include 14 總用量 4 15 drwxrwxrwx. 5 plh plh 45 11月 23 2018 . 16 drwxrwxrwx. 7 plh plh 125 11月 23 2018 .. 17 drwxrwxrwx. 4 plh plh 31 11月 23 2018 compat 18 drwxrwxrwx. 5 plh plh 4096 12月 23 11:13 lwip 19 drwxrwxrwx. 3 plh plh 227 11月 23 2018 netif 20 [plh@localhost build]$ ls -al /tmp/LwIP/contrib-2.1.0/ports/unix/lib/../../.. 21 總用量 8 22 drwxrwxr-x. 7 plh plh 120 9月 26 2018 . 23 drwxrwxr-x. 4 plh plh 86 12月 23 10:03 .. 24 drwxrwxr-x. 6 plh plh 78 9月 26 2018 addons 25 drwxrwxr-x. 14 plh plh 202 9月 26 2018 apps 26 drwxrwxr-x. 2 plh plh 24 9月 26 2018 Coverity 27 drwxrwxr-x. 12 plh plh 142 9月 26 2018 examples 28 -rw-rw-r--. 1 plh plh 3036 8月 7 2018 Filelists.cmake 29 -rw-rw-r--. 1 plh plh 2812 7月 12 2018 Filelists.mk 30 drwxrwxr-x. 5 plh plh 111 12月 23 10:09 ports 31 [plh@localhost build]$ ls -al /tmp/LwIP/contrib-2.1.0/ports/unix/lib/../../../ports/unix/port/include 32 總用量 0 33 drwxrwxr-x. 4 plh plh 31 9月 26 2018 . 34 drwxrwxr-x. 4 plh plh 66 9月 26 2018 .. 35 drwxrwxr-x. 2 plh plh 50 9月 26 2018 arch 36 drwxrwxr-x. 2 plh plh 78 9月 26 2018 netif 37 [plh@localhost build]$ ls -al /tmp/LwIP/contrib-2.1.0/ports/unix/lib 38 總用量 24 39 drwxrwxr-x. 3 plh plh 73 12月 23 11:05 . 40 drwxrwxr-x. 6 plh plh 134 9月 26 2018 .. 41 drwxrwxr-x. 3 plh plh 165 12月 23 11:14 build 42 -rw-rw-r--. 1 plh plh 1239 9月 4 2018 CMakeLists.txt 43 -rw-rw-r--. 1 plh plh 12910 9月 4 2018 lwipopts.h 44 -rw-rw-r--. 1 plh plh 701 9月 4 2018 README 45 [plh@localhost build]$
詳細編譯log

6.記錄編譯輸出檔案的依賴目標關係

6.1記錄輸出動態庫檔案liblwip.so的依賴目標

 1 [100%] Linking C shared library liblwip.so
 2 /usr/bin/cc -fPIC -g  -shared -Wl,-soname,liblwip.so -o liblwip.so 
 3 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/init.c.o 
 4 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/def.c.o 
 5 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/dns.c.o 
 6 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/inet_chksum.c.o 
 7 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ip.c.o 
 8 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/mem.c.o 
 9 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/memp.c.o 
10 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/netif.c.o 
11 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/pbuf.c.o 
12 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/raw.c.o 
13 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/stats.c.o 
14 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/sys.c.o 
15 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/altcp.c.o 
16 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/altcp_alloc.c.o 
17 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/altcp_tcp.c.o
18 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/tcp.c.o 
19 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/tcp_in.c.o 
20 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/tcp_out.c.o 
21 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/timeouts.c.o 
22 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/udp.c.o 
23 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/autoip.c.o 
24 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/dhcp.c.o 
25 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/etharp.c.o 
26 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/icmp.c.o 
27 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/igmp.c.o 
28 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/ip4_frag.c.o 
29 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/ip4.c.o 
30 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv4/ip4_addr.c.o 
31 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/dhcp6.c.o 
32 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/ethip6.c.o 
33 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/icmp6.c.o 
34 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/inet6.c.o 
35 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/ip6.c.o 
36 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/ip6_addr.c.o 
37 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/ip6_frag.c.o 
38 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/mld6.c.o 
39 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/core/ipv6/nd6.c.o 
40 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/api_lib.c.o 
41 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/api_msg.c.o 
42 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/err.c.o 
43 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/if_api.c.o 
44 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/netbuf.c.o 
45 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/netdb.c.o 
46 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/netifapi.c.o 
47 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/sockets.c.o 
48 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/api/tcpip.c.o 
49 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ethernet.c.o 
50 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/bridgeif.c.o 
51 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/bridgeif_fdb.c.o 
52 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/slipif.c.o 
53 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/lowpan6_common.c.o 
54 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/lowpan6.c.o 
55 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/lowpan6_ble.c.o 
56 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/zepif.c.o 
57 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/auth.c.o 
58 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/ccp.c.o 
59 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/chap-md5.c.o 
60 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/chap_ms.c.o 
61 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/chap-new.c.o 
62 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/demand.c.o 
63 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/eap.c.o 
64 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/ecp.c.o 
65 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/eui64.c.o 
66 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/fsm.c.o 
67 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/ipcp.c.o 
68 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/ipv6cp.c.o 
69 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/lcp.c.o 
70 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/magic.c.o 
71 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/mppe.c.o 
72 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/multilink.c.o 
73 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/ppp.c.o 
74 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/pppapi.c.o 
75 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/pppcrypt.c.o 
76 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/pppoe.c.o 
77 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/pppol2tp.c.o 
78 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/pppos.c.o 
79 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/upap.c.o 
80 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/utils.c.o 
81 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/vj.c.o 
82 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/polarssl/arc4.c.o 
83 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/polarssl/des.c.o 
84 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/polarssl/md4.c.o 
85 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/polarssl/md5.c.o 
86 CMakeFiles/lwip.dir/tmp/LwIP/lwip/src/netif/ppp/polarssl/sha1.c.o 
87 CMakeFiles/lwip.dir/tmp/LwIP/contrib-2.1.0/ports/unix/port/sys_arch.c.o 
88 CMakeFiles/lwip.dir/tmp/LwIP/contrib-2.1.0/ports/unix/port/perf.c.o 
89 CMakeFiles/lwip.dir/tmp/LwIP/contrib-2.1.0/ports/unix/port/netif/tapif.c.o 
90 CMakeFiles/lwip.dir/tmp/LwIP/contrib-2.1.0/ports/unix/port/netif/list.c.o 
91 CMakeFiles/lwip.dir/tmp/LwIP/contrib-2.1.0/ports/unix/port/netif/sio.c.o 
92 CMakeFiles/lwip.dir/tmp/LwIP/contrib-2.1.0/ports/unix/port/netif/fifo.c.o 
93 -lpthread
94 [100%] Built target lwip
liblwip.so