2011-11-04 81 views
8

我已經在這幾個小時了(這只是今天),所以我真的可以使用一些幫助。我總是在Windows環境下編碼,所以我試圖將Curlpp添加到我的Code :: Blocks項目中。未能編譯curlpp

  1. 我下載了curl-7.22.0-devel-mingw32並將所有這些庫添加到Code :: Blocks項目。
  2. 我下載了curl-7.22.0並使用vc6curl.dsw進行編譯,這使得libcurl.lib添加到Code :: Blocks項目中。
  3. 已下載curlpp -0.7.3
  4. 將MinGW \ lib \ libwsock32.a添加到Code :: Blocks項目。
  5. 添加以下目錄的項目: curlpp-0.7.3 \包括捲曲7.22.0 \包括

,但我得到了很多的 「未定義的引用」 的錯誤,所以我猜這意味着curlpp也需要編譯。它包含一個VC8項目,所以我下載了Visual C++ 2005 Express並進行了安裝。

打開項目時得到的第一個錯誤是無法加載示例。我想,這不是一個真正的問題。試圖立即建立項目,給出錯誤「無法打開包含文件:'curl/curl.h'」,所以我添加cURL包含文件夾curl-7.22.0 \ include到項目中,然後重試。

1>------ Build started: Project: curlpp, Configuration: DebugDynamic Win32 ------ 
1>Compiling... 
1>cURLpp.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>Easy.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>Exception.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>Form.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>Info.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>Multi.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>OptionBase.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>Options.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>CurlHandle.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>OptionList.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>OptionSetter.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>SList.cpp 
1>C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include\curl/curl.h(62) : fatal error C1083: Cannot open include file: 'winsock2.h': No such file or directory 
1>WIN32 
1>c1xx : fatal error C1083: Cannot open source file: 'WIN32': Permission denied 
1>Generating Code... 
1>Project : warning PRJ0018 : The following environment variables were not found: 
1>$(BOOST_PATH) 
1>$(LIBCURL_PATH) 
1>Build log was saved at "file://c:\Users\admin\Downloads\curlpp-0.7.3-2\curlpp-0.7.3\DebugDynamic\BuildLog.htm" 
1>curlpp - 13 error(s), 0 warning(s) 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Erorr對錯誤的錯誤,這是驅使我堅果。 Googeling,一個也沒有真正幫助。我發現一些論壇文章說WS2_32.Lib必須被添加,並且位於C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Lib中,但是將其添加到VS2005項目中的庫文件夾中doesn似乎沒有做任何事情。

我只是失去了這一切的軌道..這應該是怎麼回事?我認爲這將是這麼簡單:

  1. 編譯捲曲
  2. 編譯curlpp
  3. 利潤!

但不幸的是,它似乎並不那麼容易。

UPDATE

噢,我忘了,最初我也有這些錯誤:

c1xx : fatal error C1083: Cannot open source file: '.\src\curlpp\Infos.cpp': No such file or directory 

c1xx : fatal error C1083: Cannot open source file: '.\src\curlpp\Option.cpp': No such file or directory 

c1xx : fatal error C1083: Cannot open source file: '.\src\utilspp\singleton\LifetimeLibrary.cpp': No such file or directory 

c1xx : fatal error C1083: Cannot open source file: '.\src\utilspp\singleton\PrivateMembers.cpp': No such file or directory 

的src \ curlpp有:

Info.cpp 
Options.cpp 

所以我只是複製它們並將其副本重命名爲

Info2.cpp 
Option.cpp 

而且在的src \ utilspp

LifetimeLibrary.cpp 
PrivateMembers.cpp 

所以,我只是做了一個文件夾「單身」那裏,在那裏複製的文件。

這就好像curlpp是..破碎?但是我一定會奇怪,因爲有人會注意到!

UPDATE2 好吧,我從零開始,想通了,我也不得不加入包括從Windows SDK文件夾。這照顧了無法打開包含文件:'winsock2.h'錯誤。但現在我得到了其他錯誤buttload:

1>------ Build started: Project: curlpp, Configuration: DebugDynamic Win32 ------ 
1>Linking... 
1>Infos.obj : error LNK2005: "public: static void __cdecl curlpp::InfoTypeConverter<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::get(class curlpp::Easy &,enum CURLINFO,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" ([email protected][email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) already defined in Info.obj 
1>Infos.obj : error LNK2005: "public: static void __cdecl curlpp::InfoTypeConverter<class std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > >::get(class curlpp::Easy &,enum CURLINFO,class std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > &)" ([email protected][email protected][email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@@Z) already defined in Info.obj 
1>Infos.obj : error LNK2005: "public: static void __cdecl curlpp::InfoTypeConverter<long>::get(class curlpp::Easy &,enum CURLINFO,long &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]) already defined in Info.obj 
1>Infos.obj : error LNK2005: "public: static void __cdecl curlpp::InfoTypeConverter<double>::get(class curlpp::Easy &,enum CURLINFO,double &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]) already defined in Info.obj 
1>Options.obj : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class curlpp::OptionTrait<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,10002> const &)" ([email protected][email protected][email protected]@[email protected]@@[email protected]@[email protected][email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) already defined in Option.obj 
1> Creating library DebugDynamic\curlpp.lib and object DebugDynamic\curlpp.exp 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_global_init referenced in function "void __cdecl curlpp::initialize(long)" ([email protected]@@[email protected]) 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_global_cleanup referenced in function "void __cdecl curlpp::terminate(void)" ([email protected]@@YAXXZ) 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_free referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl curlpp::escape(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_escape referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl curlpp::escape(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_unescape referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl curlpp::unescape(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_getenv referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl curlpp::getenv(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_version referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl curlpp::libcurlVersion(void)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@XZ) 
1>cURLpp.obj : error LNK2019: unresolved external symbol __imp__curl_getdate referenced in function "__int64 __cdecl curlpp::getdate(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,__int64 *)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>Form.obj : error LNK2019: unresolved external symbol __imp__curl_formfree referenced in function "public: void __thiscall curlpp::HttpPost::clear(void)" ([email protected]@[email protected]@QAEXXZ) 
1>Form.obj : error LNK2019: unresolved external symbol __imp__curl_formadd referenced in function "private: virtual void __thiscall curlpp::FormParts::File::add(struct curl_httppost * *,struct curl_httppost * *)" ([email protected]@[email protected]@@[email protected]@[email protected]) 
1>Info.obj : error LNK2019: unresolved external symbol __imp__curl_easy_getinfo referenced in function "public: void __thiscall curlpp::internal::CurlHandle::getInfo<char *>(enum CURLINFO,char * &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>Infos.obj : error LNK2001: unresolved external symbol __imp__curl_easy_getinfo 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_init referenced in function "public: __thiscall curlpp::Multi::Multi(void)" ([email protected]@@[email protected]) 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_cleanup referenced in function "public: __thiscall curlpp::Multi::~Multi(void)" ([email protected]@@[email protected]) 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_remove_handle referenced in function "public: __thiscall curlpp::Multi::~Multi(void)" ([email protected]@@[email protected]) 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_strerror referenced in function "public: void __thiscall curlpp::Multi::add(class curlpp::Easy const *)" ([email protected]@[email protected]@[email protected]@@Z) 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_add_handle referenced in function "public: void __thiscall curlpp::Multi::add(class curlpp::Easy const *)" ([email protected]@[email protected]@[email protected]@@Z) 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_perform referenced in function "public: bool __thiscall curlpp::Multi::perform(int *)" ([email protected]@[email protected]@[email protected]) 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_fdset referenced in function "public: void __thiscall curlpp::Multi::fdset(struct fd_set *,struct fd_set *,struct fd_set *,int *)" ([email protected]@[email protected]@[email protected]@[email protected]) 
1>Multi.obj : error LNK2019: unresolved external symbol __imp__curl_multi_info_read referenced in function "public: class std::list<struct std::pair<class curlpp::Easy const *,struct curlpp::Multi::Info>,class std::allocator<struct std::pair<class curlpp::Easy const *,struct curlpp::Multi::Info> > > __thiscall curlpp::Multi::info(void)" ([email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@XZ) 
1>Option.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function "public: void __thiscall curlpp::internal::CurlHandle::option<void *>(enum CURLoption,void *)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>Options.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt 
1>CurlHandle.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt 
1>OptionSetter.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt 
1>CurlHandle.obj : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function "public: void __thiscall curlpp::internal::CurlHandle::perform(void)" ([email protected]@[email protected]@@QAEXXZ) 
1>CurlHandle.obj : error LNK2019: unresolved external symbol __imp__curl_easy_reset referenced in function "public: void __thiscall curlpp::internal::CurlHandle::reset(void)" ([email protected]@[email protected]@@QAEXXZ) 
1>CurlHandle.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function "public: __thiscall curlpp::internal::CurlHandle::CurlHandle(void)" ([email protected]@[email protected]@[email protected]) 
1>CurlHandle.obj : error LNK2019: unresolved external symbol __imp__curl_easy_duphandle referenced in function "public: class std::auto_ptr<class curlpp::internal::CurlHandle> __thiscall curlpp::internal::CurlHandle::clone(void)const " ([email protected]@[email protected]@@[email protected]@[email protected]@@@[email protected]@XZ) 
1>CurlHandle.obj : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function "public: virtual __thiscall curlpp::internal::CurlHandle::~CurlHandle(void)" ([email protected]@[email protected]@[email protected]) 
1>SList.obj : error LNK2019: unresolved external symbol __imp__curl_slist_free_all referenced in function "private: void __thiscall curlpp::internal::SList::clear(void)" ([email protected]@[email protected]@@AAEXXZ) 
1>SList.obj : error LNK2019: unresolved external symbol __imp__curl_slist_append referenced in function "private: void __thiscall curlpp::internal::SList::update(void)" ([email protected]@[email protected]@@AAEXXZ) 
1>DebugDynamic\curlpp.dll : fatal error LNK1120: 27 unresolved externals 
1>Project : warning PRJ0018 : The following environment variables were not found: 
1>$(BOOST_PATH) 
1>Build log was saved at "file://c:\Users\admin\Downloads\curlpp-0.7.3\curlpp-0.7.3\DebugDynamic\BuildLog.htm" 
1>curlpp - 37 error(s), 0 warning(s) 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

這將永無止境?

附加庫現在看起來是這樣的:

"C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\lib\Debug"; 
"C:\Program Files (x86)\CodeBlocks\MinGW\lib"; 
"C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\lib"; 
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib"; 
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib" 

而且包括:

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include"; 
"C:\Users\admin\Downloads\curl-7.22.0\curl-7.22.0\include"; 
.\; 
include\curlpp; 
include; 
"$(BOOST_PATH)" 

什麼是BOOST路徑?

此外,爲了擺脫「libcurl.lib not found」錯誤,我打開了我在curl-7.22.0中找到的項目並編譯了它,但這意味着libcurl.lib位於「lib \ Debug 「我包含在上面的文件夾中,我是否正確地做到了這一點?

UPDATE3:

我注意到一個叫創建-VC-solution.bat左右,之後下載 「sed的」 適用於Windows,我試圖創造一個VS9 VC溶液(有沒有選項文件10),希望將工作,但這裏是我得到的,當我打開VS2010中創建解決方案文件:

Converting project file 'C:\Users\admin\Downloads\curlpp-0.7.3\curlpp-0.7.3\curlpp.examples.VC9.vcproj'. 
File 'C:\Users\admin\Downloads\curlpp-0.7.3\curlpp-0.7.3\curlpp.examples.VC9.vcproj' was not found. 
Project upgrade failed. 

Converting project file 'C:\Users\admin\Downloads\curlpp-0.7.3\curlpp-0.7.3\curlpp.VC9.vcproj'. 
File 'C:\Users\admin\Downloads\curlpp-0.7.3\curlpp-0.7.3\curlpp.VC9.vcproj' was not found. 
Project upgrade failed. 

curlpp.examples.VC9.vcprojcurlpp.VC9.vcproj甚至從未創建過。 curlpp有沒有經過測試?由任何人?我開始認爲這不再是我的錯。

+0

在深入探究這種依賴性之前,讓我們從頂層開始。你有選擇的開發環境中正確設置和使用libcurl庫嗎?例如,你可以編譯一個使用libcurl的演示應用程序。如果不是,你可能想看看[這裏這個問題](http://stackoverflow.com/questions/6243638/adding-static-libcurl-to-codeblocks-ide/6286504#6286504)。 – greatwolf

+0

我確實設法得到libcurl運行的C例子,所以libcurl本身看起來很好。我也開始了本教程:[PDF鏈接](http://curl.haxx.se/libcurl/c/Using-libcurl-with-SSH-support-in-Visual-Studio-2008.pdf)哪個工程( )但每次我開始我的C++程序時,我得到「MSVCR80.dll丟失」,這是無稽之談,因爲我確實安裝了2005,2008和2010運行時庫。無法找出那一個。而且該教程甚至不使用curlpp,所以我仍然需要弄清楚。 – natli

回答

0

我看你正在編譯curlpp到動態庫中。那是你想要的嗎?並且您應該將libcurl.lib添加到您的鏈接器輸入中。

+0

我不知道什麼是「動態」庫,但我會谷歌它。 「將libcurl.lib添加到您的鏈接器輸入」。這就是我用''的意思。2.我下載了curl-7.22.0並使用vc6curl.dsw進行編譯,這使得libcurl.lib添加到Code :: Blocks項目中。「' – natli