使用eclipse編譯和管理live555源碼

來源:互聯網
上載者:User

這是一個eclipse使用入門教程.

live555使用makefile管理項目,當需要自己添加源碼檔案時,很麻煩,需要自己修改各檔案間的依賴關係.其實我們可以很容易地將live555移植成eclipse自己的c++工程.這樣可以讓eclipse自動管理檔案之間的關係.

編譯環境是在windows下的Mingw.安裝mingw同時會安裝MSYS,MSYS是一個命令列程式.要用mingw編譯器,需在MSYS命令列中執行類似:./configure,make之類的命令.

 官網:http://www.mingw.org/

 安裝程式:http://sourceforge.net/projects/mingw/files/latest/download?source=files

去http://sourceforge.net/projects/mingw/files/latest/download?source=files下載安裝程式: mingw-get-inst-20111118.exe

運行後會自動從網上下載並安裝所需檔案.

安裝完成後(一般裝在C盤),會在案頭上找到msys.bat之類的檔案,就是MSys命令列了,運行之即可.

 

比如你有一個makefile項目在d:/aaa/ 下,一般需執行如下命令編譯:

cd  /d/aaa

./configure

make

下面詳細講解eclipse的使用.

首先移植live555中mediaServer工程

  • 開啟eclipse
  • 菜單File->New->c++ project
  • 彈出c++ project對話方塊
  • 在project name中填入:mediaServer
  • 在project type樹控制項中選擇excutable->Emptyproject,在Toolchains中選擇MinGW GCC
  • 在Location中可以選擇工程所在的路徑,比如d:/workspace 
  • 按下finish按鈕

此時就會自動建立出工程,例如位於d:/workspace/mediaServer下,把live555/mediaServer目錄下的全部源碼檔案(*.c,*.cpp,*.h,*.hh)複製到d:/workspace/mediaServer下,然後在eclipse中,左邊的ProjectExplorer中項目mediaServer上彈出右鍵菜單,選擇Refresh功能表項目,就會把我們copy來的檔案自動加入項目中.

 

現在可以編譯了.選擇菜單Project->Build All,就會開始編譯,但不能成功.因為我們還依賴好幾個庫.

下面再建立那些庫的工程,全部為靜態庫.建立過程與mediaServer類似,但是在projecttype中選擇staticlibrary->Empty Project.Toolchains還是MinGW GCC.

分別建立BasicUsageEnvironment,UsageEnvironment,Groupsock,liveMedia四個靜態庫工程,都位於d:/workspace/mediaServer下,把live555中的對應目錄下的檔案複製到各種工程目錄下,重新整理.這樣工程就全部建立完畢.

 

但是,現在編譯任何一個庫也都是不能通過的,因為它們是互想使用彼此的標頭檔的.所以在每個項目的設定中需要設定include路徑.比如groupsock庫使用了UsageEnvironment的標頭檔,就需要將UsageEnvironment的路徑設定給groupsock.設定過程如下:

  • 在Project Exporer中選擇groupsock項目
  • 彈出右鍵菜單
  • 選擇Properties項
  • 彈出工程設定對話方塊
  • 左邊樹控制項中選擇c/c++ Build->Settings
  • 在Tool Settings 頁中選擇GCC C++Comiler->Includes
  • 出現Include path (-I)介面,靠右有帶小+號的表徵圖按鈕,擊之  
  • 出現Add dictionary path對話方塊
  • 選擇workspace
  • 出現Folder selection對話方塊
  • 選擇UsageEnvironment->include (UsageEnvironment把標頭檔另放在include目錄下了).
  • 點OK.

現在編譯groupsock就能通過了.

其餘各庫之間的標頭檔引用問題都以上述方式解決即可.

 

然而,編譯mediaServer時還是通不過,因為找不到要連結的庫.

下面就來解決這個問題:

  • 在Project Explorer中選擇mediaServer項目,彈出右鍵菜單
  • 選擇Properties功能表項目
  • 彈出Properties for mediaServer對話方塊.
  • 在左邊樹控制項中選擇c/c++ build->settings
  • 在右邊選擇Tool Settings頁
  • 在樹控制項中選擇Mingw C++ Linker->Libraries
  • 在右邊Libraries (-l)行選擇帶+號的按鈕
  • 在彈出的對話方塊中輸入groupsock
  • 重複上面的動作,把mediaServer依賴的靜態庫都添加進去.
  • 在右下邊的Libraries Search Path (-L)行也選擇+號按鈕.
  • 彈出Add Directory path對話方塊.
  • 在其中點擊workspace按鈕
  • 在彈出的對話方塊中選擇groupSock->Debug
  • 點OK,對話方塊關閉,進入Add Directorypath對話方塊
  • 點OK.即添加一個庫路徑.
  • 重複添加其餘庫的路徑.

 完成收功.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.