2017-10-05 123 views
0

我按照將curl/winbuild目錄中的靜態庫構建爲libcurl的說明構建了libcurl。它彈出一個libcurl_a.lib,這是一個.h文件的集合,我將它們移動到我立即添加到PATH的文件夾中。然後我試圖建立我的程序用命令鏈接到libcurl_a.lib的Windows

cl (*my source files*) /IC:/PATH_addon/include libcurl_a.lib Ws2_32.lib Wldap32.lib /DCURL_STATICLIB /link /LIBPATH:C:/PATH_addon/lib 

注:

  • 我在命令行建立的代碼是不是在IDE寫的,或在本機上

  • C:/ PATH_addon /是一個文件夾,用於轉儲所有需要鏈接到路徑中的內容(鏈接到我的路徑),這樣我就不會污染默認路徑或我的system32文件夾

然而,當我運行命令,它告訴我,有12個未解決的符號:

libcurl_a.lib(tftp.obj) : error LNK2001: unresolved external symbol __imp___time64 
libcurl_a.lib(cookie.obj) : error LNK2001: unresolved external symbol __imp___time64 
libcurl_a.lib(hostip.obj) : error LNK2001: unresolved external symbol __imp___time64 
libcurl_a.lib(http.obj) : error LNK2001: unresolved external symbol __imp___time64 
libcurl_a.lib(ftp.obj) : error LNK2001: unresolved external symbol __imp___time64 
libcurl_a.lib(telnet.obj) : error LNK2001: unresolved external symbol __imp__strncpy 
libcurl_a.lib(curl_sspi.obj) : error LNK2001: unresolved external symbol __imp__strncpy 
libcurl_a.lib(url.obj) : error LNK2001: unresolved external symbol __imp__strncpy 
libcurl_a.lib(strerror.obj) : error LNK2001: unresolved external symbol __imp__strncpy 
libcurl_a.lib(ftp.obj) : error LNK2001: unresolved external symbol __imp__strncpy 
libcurl_a.lib(warnless.obj) : error LNK2019: unresolved external symbol __imp__read referenced in function _curlx_read 
OLDNAMES.lib(read.obi) : error LNK2001: unresolved external symbol __imp__read 
libcurl_a.lib(warnless.obj) : error LNK2019: unresolved external symbol __imp__write referenced in function _curlx_write 
OLDNAMES.lib(write.obi) : error LNK2001: unresolved external symbol __imp__write 
libcurl_a.lib(parsedate.obj) : error LNK2019: unresolved external symbol __imp___gmtime64 referenced in function _Curl_gmtime 
libcurl_a.lib(strerror.obj) : error LNK2019: unresolved external symbol __imp__strerror referenced in function _Curl_strerror 
libcurl_a.lib(curl_threads.obj) : error LNK2019: unresolved external symbol __imp___beginthreadex referenced in function _Curl_thread_create 
libcurl_a.lib(smb.obj) : error LNK2019: unresolved external symbol __imp___getpid referenced in function _smb_format_message 
libcurl_a.lib(file.obj) : error LNK2019: unresolved external symbol __imp__close referenced in function _file_done 
OLDNAMES.lib(close.obi) : error LNK2001: unresolved external symbol __imp__close 
libcurl_a.lib(file.obj) : error LNK2019: unresolved external symbol __imp__open referenced in function _file_connect 
OLDNAMES.lib(open.obi) : error LNK2001: unresolved external symbol __imp__open 
libcurl_a.lib(mime.obj) : error LNK2019: unresolved external symbol __imp__access referenced in function _curl_mime_filedata 
OLDNAMES.lib(access.obi) : error LNK2001: unresolved external symbol __imp__access 
MSVCRT.lib(_chandler4gs_.obj) : error LNK2019: unresolved external symbol __except_handler4_common referenced in function __except_handler4 

爲什麼不能將這些符號來解決,是有辦法解決這一問題?

+1

這些是純粹的CRT函數,在msvcrt.lib中定義。確保LIB環境變量設置正確,以便鏈接程序可以找到它。或將其添加到/ LIBPATH。 –

回答

0

解決方案(這要部分歸功於不可思議@Hans帕桑特):

添加/NODEFAULTLIB:LIBCMT標誌固定的問題,並允許一個成功的編譯和執行。