当前位置:   article > 正文

Aria2c开源库makefile文件的编写_deps/wslay

deps/wslay

开源库链接:https://github.com/aria2/aria2.git

前言

     这个库本身没有提供makefile文件,而是使用configure.ac和makefile.am文件自动生成makefile。本文通过学习其自动生成的makefile文件,自己尝试写一个makefile,编译整个项目。

    注:使用mingw64编译器,生成windows上可执行的aria2c.exe可执行文件(其他平台类似)。

一、安装相关库文件   

 通过查看对应的文档:https://aria2.github.io/manual/en/html/README.html#how-to-build,下载了并安装了相关库文件,具体可以参考Linux:https://blog.csdn.net/qq_33850438/article/details/80199588

  1. gmp-6.1.2.tar.lz
  2. expat-2.2.0.tar.bz2
  3. sqlite-autoconf-3160200.tar.gz
  4. zlib-1.2.11.tar.gz
  5. c-ares-1.12.0.tar.gz
  6. libssh2-1.8.0.tar.gz

二、编译之前相关准备工作

需要获取通过工具./configure生成一个conifg.h文件(其作用影响代码的编译,哪些模块的代码需要加入,哪些代码不需要加入),同时使用mingw-config文件查看相关库安装情况,环境等作用,通过这个也能知道链接时候需要的一些库以及所对应的选项。

  1. configure: summary of build options:
  2. Build: x86_64-pc-linux-gnu
  3. Host: x86_64-w64-mingw32
  4. Target: x86_64-w64-mingw32
  5. Install prefix: /usr/local/x86_64-w64-mingw32
  6. CC: x86_64-w64-mingw32-gcc
  7. CXX: x86_64-w64-mingw32-g++
  8. CPP: x86_64-w64-mingw32-gcc -E
  9. CXXFLAGS: -g -O2
  10. CFLAGS: -g -O2
  11. CPPFLAGS: -I/usr/local/x86_64-w64-mingw32/include
  12. LDFLAGS: -L/usr/local/x86_64-w64-mingw32/lib
  13. LIBS:
  14. DEFS: -DHAVE_CONFIG_H
  15. CXX1XCXXFLAGS: -std=c++11
  16. EXTRACXXFLAGS: -pipe
  17. EXTRACFLAGS: -pipe
  18. EXTRACPPFLAGS: -D_POSIX_C_SOURCE=1
  19. EXTRALDFLAGS: -Wl,--dynamicbase -Wl,--nxcompat -all-static
  20. EXTRALIBS: -lws2_32 -lwsock32 -lgdi32 -lwinmm -liphlpapi -lpsapi
  21. WARNCXXFLAGS:
  22. LibUV: no (CFLAGS='' LIBS='')
  23. SQLite3: yes (CFLAGS='-I/usr/local/x86_64-w64-mingw32/include' LIBS='-L/usr/local/x86_64-w64-mingw32/lib -lsqlite3 -lpthread')
  24. SSL Support: yes
  25. AppleTLS: no (LDFLAGS='')
  26. WinTLS: yes (LIBS='-lcrypt32 -lsecur32 -ladvapi32')
  27. GnuTLS: no (CFLAGS='' LIBS='')
  28. OpenSSL: no (CFLAGS='' LIBS='')
  29. CA Bundle:
  30. LibNettle: no (CFLAGS='' LIBS='')
  31. LibGmp: yes (CFLAGS='' LIBS='-lgmp')
  32. LibGcrypt: no (CFLAGS='' LIBS='')
  33. LibXML2: no (CFLAGS='' LIBS='')
  34. LibExpat: yes (CFLAGS='-I/usr/local/x86_64-w64-mingw32/include' LIBS='-L/usr/local/x86_64-w64-mingw32/lib -lexpat')
  35. LibCares: yes (CFLAGS='-I/usr/local/x86_64-w64-mingw32/include' LIBS='-L/usr/local/x86_64-w64-mingw32/lib -lcares -lws2_32')
  36. Zlib: yes (CFLAGS='-I/usr/local/x86_64-w64-mingw32/include' LIBS='-L/usr/local/x86_64-w64-mingw32/lib -lz')
  37. Libssh2: yes (CFLAGS='-I/usr/local/x86_64-w64-mingw32/include' LIBS='-L/usr/local/x86_64-w64-mingw32/lib -lssh2 -lws2_32 -lbcrypt -lcrypt32 -lws2_32 -lbcrypt -lcrypt32 -lz')
  38. Tcmalloc: no (CFLAGS='' LIBS='')
  39. Jemalloc: no (CFLAGS='' LIBS='')
  40. Epoll: no
  41. Bittorrent: yes
  42. Metalink: yes
  43. XML-RPC: yes
  44. Message Digest: internal
  45. WebSocket: yes (CFLAGS='-I$(top_builddir)/deps/wslay/lib/includes -I$(top_srcdir)/deps/wslay/lib/includes' LIBS='$(top_builddir)/deps/wslay/lib/libwslay.la')
  46. Libaria2: no (shared=yes static=no)
  47. bash_completion dir: ${datarootdir}/doc/${PACKAGE_TARNAME}/bash_completion
  48. Static build: yes

三、编写makefile

     可以参考:https://blog.csdn.net/qq_33850438/article/details/80199588  将自动生成的makefile文件的信息打印出来(操作:make -n>makefilelog.txt,这个操作不会编译文件,会将makefile文件编译时候的信息打印出来,然后通过查看makefilelog.txt)以下截取一小片段。

echo "  CXX     " A
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/241814
推荐阅读
相关标签
  

闽ICP备14008679号