将 libcurl 与 chilkat 一起使用时出现错误
using libcurl with chilkat getting errors
当我使用
构建项目时,我在同一个项目中使用 chilkat 和 libcurl
Runtime Library => Multi-threaded DLL (/MD)
然后我收到这些错误和警告:
Error 4 error LNK1169: one or more multiply defined symbols found
Error 1 error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR90.dll)
Error 2 error LNK2005: __strdup already defined in LIBCMT.lib(strdup.obj)
Warning 3 warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
以及使用
构建时
Runtime Library => Multi-threaded (/MT)
Error 54 error LNK1169: one or more multiply defined symbols found
Error 44 error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
Error 45 error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
Error 11 error LNK2005: ___iob_func already defined in LIBCMT.lib(_file.obj)
Error 39 error LNK2005: __beginthreadex already defined in LIBCMT.lib(threadex.obj)
Error 47 error LNK2005: __close already defined in LIBCMT.lib(close.obj)
...
Chilkat 提供 "Multithread DLL" 和 "Multithread"(即静态)库。确保 link 使用 ChilkatRelDll.lib 而不是 ChilkatRel.lib
此错误是由于在多线程 DLL 运行时项目中 linking ChilkatRel.lib 多次出现同一个 lib 文件,从而出现一个函数的多个定义。这些符号出现在 libcmt.lib
您可以通过将运行时库用作多线程 DLL (/MD) 来解决此问题,并且
将 "libcmt.lib" 添加到 "Ignore Specific Library" 字段并不能解决这个问题。
Chilkat 提供 "Multithread DLL" 和 "Multithread"(即静态)库。确保 link 使用 ChilkatRelDll.lib 而不是 ChilkatRel.lib
当我使用
构建项目时,我在同一个项目中使用 chilkat 和 libcurlRuntime Library => Multi-threaded DLL (/MD)
然后我收到这些错误和警告:
Error 4 error LNK1169: one or more multiply defined symbols found
Error 1 error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR90.dll)
Error 2 error LNK2005: __strdup already defined in LIBCMT.lib(strdup.obj)
Warning 3 warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
以及使用
构建时Runtime Library => Multi-threaded (/MT)
Error 54 error LNK1169: one or more multiply defined symbols found
Error 44 error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
Error 45 error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
Error 11 error LNK2005: ___iob_func already defined in LIBCMT.lib(_file.obj)
Error 39 error LNK2005: __beginthreadex already defined in LIBCMT.lib(threadex.obj)
Error 47 error LNK2005: __close already defined in LIBCMT.lib(close.obj)
...
Chilkat 提供 "Multithread DLL" 和 "Multithread"(即静态)库。确保 link 使用 ChilkatRelDll.lib 而不是 ChilkatRel.lib
此错误是由于在多线程 DLL 运行时项目中 linking ChilkatRel.lib 多次出现同一个 lib 文件,从而出现一个函数的多个定义。这些符号出现在 libcmt.lib
您可以通过将运行时库用作多线程 DLL (/MD) 来解决此问题,并且 将 "libcmt.lib" 添加到 "Ignore Specific Library" 字段并不能解决这个问题。
Chilkat 提供 "Multithread DLL" 和 "Multithread"(即静态)库。确保 link 使用 ChilkatRelDll.lib 而不是 ChilkatRel.lib