Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1128519
  • 博文数量: 188
  • 博客积分: 1156
  • 博客等级: 少尉
  • 技术积分: 2173
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-16 15:01
个人简介

go!go!go!

文章分类

全部博文(188)

文章存档

2024年(2)

2023年(11)

2022年(13)

2021年(15)

2020年(38)

2019年(3)

2018年(6)

2016年(1)

2015年(16)

2014年(13)

2013年(24)

2012年(46)

分类: C/C++

2019-09-03 17:47:16

crtmpserver在linux下默认编译构建方式为二进制+动态库的,这就导致了在gdb跟踪的时候,如果刚好要观察的函数在.so动态库中,不方便进行单步调试,因此编译为静态二进制更方便调试。


构建如下:

1.在当前终端设置环境变量export COMPILE_STATIC=1
2.在当前终端执行cmake . -DCMAKE_BUILD_TYPE=Debug 前


ps: crtmpserver的静态编译方式可以从CMakeLists.txt 中看到

点击(此处)折叠或打开

  1. IF($ENV{COMPILE_STATIC} MATCHES "1") 
  2.         MESSAGE(STATUS "Compile static") 
  3.         ADD_DEFINITIONS(-DCOMPILE_STATIC) 
  4.         SET(LIB_TYPE STATIC) 
  5.         SET(LUA_LIBRARY_PATH "lua") 
  6.         SET(LUA_INCLUDE_PATH "${CRTMPSERVER_3RDPARTY_ROOT}/lua-dev") 
  7.         SET(TINYXML_LIBRARY_PATH "tinyxml") 
  8.         SET(TINYXML_INCLUDE_PATH "${CRTMPSERVER_3RDPARTY_ROOT}/tinyxml") 
  9. ELSE($ENV{COMPILE_STATIC} MATCHES "1") 
  10.         MESSAGE(STATUS "Compile dynamic") 
  11.         SET(LIB_TYPE SHARED) 
  12.                                                                                                                                         │
  13.         INCLUDE(cmake_find_modules/Find_lua.cmake) 
  14.         IF(NOT LUA_FOUND)
  15.                 ADD_SUBDIRECTORY(lua lua) 
  16.         ENDIF(NOT LUA_FOUND) 
  17.                                                                                                                                         │
  18.         INCLUDE(cmake_find_modules/Find_tinyxml.cmake) 
  19.         IF(NOT TINYXML_FOUND) 
  20.                 ADD_SUBDIRECTORY(tinyxml tinyxml) 
  21.         ENDIF(NOT TINYXML_FOUND) 
  22. ENDIF($ENV{COMPILE_STATIC} MATCHES "1")

静态编译后二进制文件体积明显增大

点击(此处)折叠或打开

  1. -rwxr-xr-x 1 root root 16M 9月 3 17:40 crtmpserver #静态编译
  2. -rwxr-xr-x 1 root root 98K 9月 3 17:22 crtmpserver #默认动态编译




阅读(158309) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~