在MAC下開發C/C++程序

這幾天想研究一下ffmepg的庫,自己的開發環境是mac,在網上搜索了一下在mac上用什么IDE開發c/c++程序,推薦了很多如Eclipse,NetBeans。還有一些人說就用Xcode。由于自己懶得重新安裝一個IDE,就直接用Xcode了(我也沒有用過Xcode,想想以后說不定有機會用Xcode寫個IOS app什么的呢)。總結一些用法。

程序是這篇博客的源代碼最簡單的基于FFMPEG+SDL的視頻播放器 ver2 (采用SDL2.0)》。

首先創創建工程。


Paste_Image.png

下一步可以選擇使用什么語言,我這里選擇了使用C語言

Paste_Image.png

然后然后工程創建完畢,粘貼進代碼,IDE中就會出現下面的錯誤。

Paste_Image.png

關于C語言的編譯

可以用下面的命令來編譯這個工程:

gcc main.c -g -o simplest_ffmpeg_player.out -I /usr/local/include -L /usr/local/lib -lSDL2main -lSDL2 -lavformat -lavcodec -lavutil -lswscale

那么在IDE里該如何配置呢? 讓C語言寫的代碼能夠編譯成功無非就兩個條件:

  • 頭文件
  • 庫文件

上面在的錯誤屬于頭文件范疇,就是Xcode無法找到<avcodec.h>這個文件,首先你要安裝ffmpeg然后告訴Xcode這個頭文件所在的目錄就OK了。

Paste_Image.png

如圖,在項目設置面板中的編譯設置里面搜索【search path】在下面的【Header Search Path】中填寫<avcodec.h>所在的路徑就可以了。這時候在回去看源代碼,之前的那個報錯沒有了。點擊運行,仍然不能編譯運行成功。因為只有頭文件是不行的,真正在程序里調用的函數邏輯是被寫在庫文件里的。這個時候需要給項目加入一些庫文件,其實就是告訴IDE編譯的時候需要連那些庫來生成可執行文件。

那么我們還是在項目設置里加入庫文件,這里用的是.dylib庫文件,而不是傳統的.a文件,沒花時間研究,大概是Xcode就認.dylib文件吧。


Paste_Image.png

然后還有一個小問題,就是Xcode的編譯生成的可執行文件默認在一個臨時文件夾,并沒有在項目的工程目錄下,所以要在進行一個簡單的配置,如下圖


Paste_Image.png

image.png

好了點擊運行,成功打開播放器窗口。

Paste_Image.png

總結

萬變不離其中,在編譯C程序最關鍵的就是導入正確的頭文件和鏈接庫文件以生成可執行文件。所有IDE都是用一些自動的可視化的方式來做這兩個事情。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容