2013-02-01 84 views
1

你好我想用MinGW64編譯器使用DevCpp編譯windows.EXE應用程序。我想編譯的應用程序非常簡單,需要CURL庫。我使用的是Windows 8 64位,Orwell Dev-C++ V 5.3.0.4。我從官方網站(Win64 - MinGW64 devel v.28.1)下載了CURL庫。我複製所有的包括bin和lib文件到MinGW64文件夾,但該程序不能編譯,因爲它得到以下鏈接錯誤:[DevCpp]用curl庫編譯程序的問題

  [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x37): undefined reference to `__imp_curl_global_init' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x74): undefined reference to `__imp_curl_formadd' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0xb1): undefined reference to `__imp_curl_formadd' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0xba): undefined reference to `__imp_curl_easy_init' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0xd5): undefined reference to `__imp_curl_slist_append' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x100): undefined reference to `__imp_curl_easy_setopt' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x157): undefined reference to `__imp_curl_easy_setopt' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x173): undefined reference to `__imp_curl_easy_setopt' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x183): undefined reference to `__imp_curl_easy_perform' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x19a): undefined reference to `__imp_curl_easy_strerror' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x1cc): undefined reference to `__imp_curl_easy_cleanup' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x1dc): undefined reference to `__imp_curl_formfree' 
     [Linker error] C:\Users\Panos\AppData\Local\Temp\ccSFo7Pn.o:upload.cpp:(.text+0x1ec): undefined reference to `__imp_curl_slist_free_all' 
     collect2: ld returned 1 exit status 

的不僅是我設法編譯程序與-DCURL_STATICLIB -c -h -Icurl \ include選項給編譯器,但我得到的是一個無法在我的操作系統中運行的16位應用程序!

我試圖編譯的代碼是這樣的捲曲例如: http://curl.haxx.se/libcurl/c/postit2.html

我花了許多時間搜索互聯網和閱讀指南,使我的程序編譯,但沒有任何的運氣。請幫助我,告訴我我做錯了什麼!

謝謝!

+0

這些問題不在編譯過程中,而是在鏈接過程中。您需要添加路徑到庫。你需要谷歌如何告訴鏈接器在哪裏找到lib文件。這是特定於環境的(在你的情況下,Orwell Dev-C++) –

+0

我已經通過工具>編譯器選項>目錄添加了路徑到文件 – InS0mN1aC

+0

再次,你需要鏈接器選項,而不是編譯器。通過將目錄添加到編譯器選項中,您告訴Orwell Dev-C++在哪裏可以找到頭文件,而不是編譯器庫。這就是編譯成功的原因(鏈接問題之前)。找到關於「鏈接器選項」 –

回答

0

如果當您嘗試運行編譯的二進制文件時它要求libcurl.dll,它在運行時需要libcurl.dll。嘗試將libcurl.dll放入二進制文件的工作目錄中。

+0

不要把libcurl.dll放在'%WINDIR%/ System32'中。請。只需將它放在PATH中或與可執行文件一起放置即可。 – rubenvb

+0

謝謝。我編輯了答案以省略它。 – 2013-05-27 11:57:50

+0

「工作目錄」不準確。這可能與可執行文件的位置不同當它被稱爲'.. \ .. \ executable.exe'。 – rubenvb