2017-10-05 116 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标志固定的问题,并允许一个成功的编译和执行。