基於 Cygwin 編譯 librtmp

2021-06-17 15:42:41 字數 1290 閱讀 7494

由於需要在移動平台上解決基於 rtmp 協議的編譯碼,所以用到了 rtmpdump 專案下的 librtmp(不知道有沒有更好的推薦?呵呵)。

直接上 ndk 稍嫌麻煩,於是乎想嘗試先在 windows 平台下做一些預研,便想到直接在 cygwin 下面做了 —— 其實在 cygwin 下面編譯 librtmp,簡易度直追 linux。

關於 librtmp 及其版本

同時,下文中所進行的操作,都是基於如下版本

切換到 rtmpdump 原始碼檔案,解壓後會發現其中有個 librtmp 的目錄,其中就是 librtmp 的原始碼與 makefile

由於已經安裝了 cygwin 的環境,所以在 cmd 命令列下可以直接使用 make 命令

librtmp 的常用 make 寫法如下

make sys=posix // linux 環境下

make sys=mingw // mingw 環境下

make sys=cygwin // cygwin 環境下

必須注意的是,如果沒有按照前文所述,先安裝配置 cygwin 的 openssl 以及 zilib 的話,make 時是肯定會丟出 'recipe for target xx failed' 的錯誤的

很顯然,我們要呼叫的是 make sys=cygwin,執行後,目錄中會產生相關 .c 檔案的 .o 目標檔案,同時會有 librtmp.a 和 librtmp.so 產生

這時將 librtmp.a 和所有的 .h 標頭檔案都拷貝到目標專案的**目錄下

假設自主**如下:mian.c

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include "rtmp.h"

#include "amf.h"

int main()

命令列呼叫:gcc main.c librtmp.a -lcrypto -lssl -zl -o main.exe

耐心等待編譯完成即可

p.s:

openssl : -lcrypto -lz // openssl 所需引用的兩個庫路徑

zlib : -lz // zlib 不需多說

cygwin下boost編譯安裝

int main example.cpp c檔案如上面。把他儲存在 home administrator下面。g i boost 1 40 0 example.cpp o example 執行 echo 1 2 3 example 5 編譯庫檔案 cd path to boost 1 40 0 bo...

levelDB使用與在cygwin編譯

leveldb是google開源的乙個key value儲存引擎庫,類似於開源的lucene索引庫一樣。其他的軟體開發者可以利用該庫做二次開發,來滿足定製需求。leveldb採用日誌式的寫方式來提高寫效能,但是犧牲了部分讀效能。為了彌補犧牲了的讀效能,一些人提議使用ssd作為儲存介質。對於本地化的k...

Cygwin下ndk build編譯錯誤解決

開啟cygwin進入到專案的jni資料夾,ndk build出錯,錯誤以及解決辦法如下 參考部落格 錯誤1 這一行,將其修改為 錯誤2android ndk home helei workspace raydroid jni jni android.mk silkcommon local modul...