编译librtmp
轉自https://blog.csdn.net/pehao/article/details/49280857
第一步 Openssl
1.下載Openssl.exe安裝后即可使用,網上很多都使用源代碼編譯,結果折騰半年都不行。最終發現可以直接使用注意選擇對應操作系統我選擇的是Win64 OpenSSL v1.0.2d Light。
2.安裝openssl到C盤下,C:\OpenSSL-Win64。后續使用到的內容為:
頭文件目錄: C:\OpenSSL-Win64\include?
鏈接庫文件:C:\OpenSSL-Win64\lib\libeay32.lib 和 C:\OpenSSL-Win64\lib\ssleay32.lib
第二步 zlib
1.下載zlib包,并解壓。下載地址:http://zlib.net/
2.運行VisualStudio Command Prompt,其實就是VS2012 X64 兼容工具命令提示符,按照網上專家們說的:
切到zlib-2.1.5目錄,分別執行以下命令
>cd contrib\masmx86
>bld_ml32.bat
提示XXXml64.exe不是內部命令。惡心慘了。最終解決方式:
將C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\ml64.exe復制到zlib-1.2.8\contrib\masmx64下面,再按照命令執行即可。
PS:比如我zlib-1.2.8在F盤中,在命令提示符中
a. >F:
b. >F:\DEMO\zlib-1.2.8\contrib\masmx64\
c. >bld_ml64.bat
完成!
3.編譯
a.打開F:\DEMO\zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln
b.按照網上說的,在zlibstat工程屬性中,去掉預編譯宏 ZLIB_WINAPI
c.只編譯,zlibstat項目即可。
?
頭文件目錄:F:\DEMO\zlib-1.2.8\下所有.H文件,簡單點就是排除文件夾其他文件全部使用。
依賴庫文件:F:\DEMO\zlib-1.2.8\contrib\vstudio\vc11\x64\ZlibStatDebug\zlibstat.lib
第三部編譯librtmp庫
1.下載rtmpdump?,下載地址:http://rtmpdump.mplayerhq.hu/
2.在VS2012中創建C++項目中:
a.WIN32控制臺應用程序(命名Librtmp)
b.下一步中選擇靜態庫,取消勾選:預編譯頭和安全開發生命周期XXOO,完成。
c.在工程文件目錄中(PS:在解決方案窗體中,點擊項目右鍵,選擇“在資源管理器中打開文件夾”),創建include和lib文件夾。
3.解壓下載的文件夾,將rtmpdump-2.3文件夾下的\rtmpdump-2.3\librtmp中的所有文件拷貝到2步驟C的選擇的文件夾中。
4.在項目中設置對應的.H文件和C文件,
選擇打開目錄中的所有.h文件
按照對應的方式,在源文件中添加所有的.c文件。
5.添加應用庫
a.將第一步中的頭文件庫以及第二步中的頭文件庫全部拷貝到include文件夾中
?
b.設置項目頭文件引用
C.將第一步和第二步中的.lib文件復制到\Librtmp\Librtmp\lib文件夾中。
d.設置庫引用,
?
?
庫名稱
?
?
最終項目樣子
?
編譯完成!!
?
ex:
1、修改rtmp_sys.h文件注釋掉下面部分
#if 0
#ifdef _MSC_VER?? ?/* MSVC */
#define snprintf _snprintf
#define strcasecmp stricmp
#define strncasecmp strnicmp
#define vsnprintf _vsnprintf
#endif
#endif
2、The POSIX name for this item is deprecated.錯誤
屬性->c/c++->預處理器->預處理器定義 ? 中添加:
? ? _CRT_SECURE_NO_DEPRECATE?
? ? _CRT_NONSTDC_NO_DEPRECATE?
3、所有預處理宏:
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
_CRT_NONSTDC_NO_DEPRECATE
總結
- 上一篇: php 根据ip判断是否中国,PHP判断
- 下一篇: linux下可执行文件的默认扩展名为,L