2013-07-05 38 views
0

我們使用CentOS6(Linux)並試圖通過C/C++連接網絡服務器。Linux中用於curl/curl.h的C/C++

我的研究:
我發現捲曲庫,能夠溝通的網絡服務器
所以我在http://curl.haxx.se/download.html

我能夠包括「捲曲/ curl.h」安裝Ubuntu的7.22.0版本但不能編譯他們的方法。

問題:

請讓我知道我們的平臺,以及如何添加-lcurl編譯正確版本捲曲。 (例如:g ++ -lcurl api api.c)

請給出詳細的解釋,因爲它對我更重要。提前致謝。

-Vasanth

+0

你提到了CentOS和Ubuntu。你應該告訴我們你正在使用什麼樣的分佈,並堅持下去。另外(但更難和可能無用),你可以從它的源代碼編譯'libcurl'。 –

回答

6

您的問題不是特定於curl:參數的順序爲gcc非常重要:編譯器選項,然後是源文件,然後是對象文件,然後是庫(從高級到低級);所以嘗試用

gcc -Wall -g prog.c -lcurl -o binprog 

或(爲一個C++程序)

g++ -Wall -g otherprog.cc -lcurl -o binotherprog 

當然需要開發包例如編譯libcurl-devlibcurl3-gnutls-devlibcurl4-gnutls-dev(在Ubuntu中打包);在你的CentOS發行版上,它可能被稱爲libcurl-devel或其他東西。

您應該http://curl.haxx.se/download.html

實際安裝您的版本所提供的開發包(libcurl),不,你也應該學習如何使用GNU make(建造者)和gdb(調試)。

+0

感謝您的寶貴意見,我正在努力 – user2552344

+0

現在我的代碼工作正常,非常感謝你! – user2552344

0

這裏是你應該如何進行

從這個鏈接 http://curl.haxx.se/download.html 安裝捲曲,如果你已經安裝了這個到這個網頁

然後按照本教程 http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

+0

我相信安裝你的發行版提供的'libcurl'開發包更簡單明智。 –

+0

是的,我同意。我給了他那個,所以他知道在遇到問題的時候去哪裏看。我安裝了libcurl,甚至是最新的。它直截了當。另外教程鏈接給出了所有需要使用libcurl – Pradheep

+0

感謝您的即時響應,這對我很有幫助。 – user2552344

1

gcc(和變體)

庫必須是最後的鏈接命令。

這是因爲鏈接器按照從左到右的順序處理命令行參數。

如果庫位於目標文件之前,那麼在處理庫時,不會解析未解析的外部引用。

處理完目標文件後,出現未解析的外部引用,所以庫必須是最後一個。