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]$
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