Windows 以及 Xcode下編譯調試 libcurl 源碼

來源:互聯網
上載者:User

標籤:blog   http   io   ar   使用   sp   on   檔案   2014   

curl 這個工具大家都很熟悉. 前幾天因為要跟蹤curl的實現細節, 不得不設法搭建curl的調試工程. 我們分別在windows visual studio 和 mac 上的 xcode 下搭建調試. 這裡記錄一些細節,分享出來.

curl 可以在數十個平台上編譯運行.
這是官網地址: http://curl.haxx.se

請在這裡下載源碼: http://curl.haxx.se/download.html

下載解壓.

一. Windows 調試:
在 windows 上調試比較簡單. 內建工程檔案.
直接用 VS2012 開啟 \projects\Windows\VC11 裡面的 工程檔案就可以了。
務必用vs2012 開啟。

直接 F10 就可以單步 到 main 函數。

二. Mac Xcode 調試.
我們主要說說 xcode 調試.
大概是因為 *nix 上的編譯比較方便, 所以都是使用 makefile 編譯. 所以沒有內建工程檔案.

所幸的是, 開源項目 cmake 可以根據 makefile 和設定檔逆向產生工程檔案. 而更好的訊息是 curl 早期是支援 cmake 的. 所以我們需要修改一下 curl 的設定檔, 並結合 cmake 來逆向產生 它在 xcode 上的工程檔案.

開工.

1) 需要先安裝cmake

下載 cmake 源碼, http://www.cmake.org/files/v3.1/cmake-3.1.0-rc1.tar.gz
然後解壓, 進去: ./configure && make && make install
一切順利的話,應該就能成功了。

2) 產生 makefile

第二步, 我們需要產生curl 的 makefile. 進入curl的源碼目錄:

./configure  --without-libssh2  --with-darwinsslmake

說明一下, 我們這裡指定了兩個參數, 我們不需要 curl 支援 ssh, 所以把”–without-libssh2 ” 排除. 而且”–with-darwinssl” 指定使用 mac 上的 ssl 實現, 而不需要 openssl.

這樣可以減少出錯的可能性, 而且, 我們就需要 darwinssl.

3) 產生 xcode 工程.

前面幾步都沒什麼特別的, 這一步是關鍵, 使用 cnamke 逆向產生工程.

在 curl 的源碼根目錄中, 有一個檔案 “CMakeLists.txt” 這個是逆向產生所必須的設定檔. 這是curl 官方提供的, 但是已經很舊了, 年久失修, 不能工作了.

我們可以先嘗試一下:

mkdir -p build/xcodecd build/xcodecmake ../../$CURL -G Xcode

說明一下, 建立一個子目錄儲存工程. 然後使用命令:

cmake ../../$CURL -G Xcode

來產生工程.

這一步會報大量的錯誤在”CMakeLists.txt” 中.

請使用附件中這個我修改過的版本代替源碼中的版本, 然後再重複執行上面的命令產生.
CMakeLists.txt

工程檔案已經產生了.

但是此時開啟工程編譯不過. 需要先對工程檔案做一些修改:
具體請查看下面的命令.

sed -i "" "s/OTHER_LDFLAGS = \"/OTHER_LDFLAGS = \"-framework Cocoa -framework CoreFoundation -framework CoreServices -framework Security -fobjc-link-runtime -framework LDAP/"  CURL.xcodeproj/project.pbxproj

在工程中添加了一些 link target. 比較簡單. 不多說了.

現在設定一下 調試工程, 就可以調試了.

然後選中 curl 這個target:

然後找到 main 函數. 就可以單步調試了:

歡迎訪問我的個人獨立部落格: http://byNeil.com

Windows 以及 Xcode下編譯調試 libcurl 源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.