aliyun / aliyun-oss-cpp-sdk

Aliyun OSS SDK for C++
Other
184 stars 88 forks source link

VS2015 C++ x64 编译链接出错 #4

Closed DannyJieweiLi closed 5 years ago

DannyJieweiLi commented 5 years ago

编译32位无错,32位库写文档中的例子也无错 只有编译64位有错,是否不支持64位?

cmake 生成64位解决方案 然后运行:msbuild ALL_BUILD.vcxproj

  1. 自带的sample 编译出错
  2. 复制文档里的代码新建一个工程编译也出相应的错误

"D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\ALL_BUILD.vcxproj" (default target ) (1) -> "D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.vcxproj" (de fault target) (4) -> (Link target) -> alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_global_init referenced in function "public: static void cdecl AlibabaCloud::OSS::CurlHttpClient::initGlobalState(void)" (?initGl obalState@CurlHttpClient@OSS@AlibabaCloud@@SAXXZ) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk -master\build64\sample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_global_clean up referenced in function "public: static void cdecl AlibabaCloud::OSS::CurlHttpClient::cleanupGlobalState(void)" (? cleanupGlobalState@CurlHttpClient@OSS@AlibabaCloud@@SAXXZ) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-os s-cpp-sdk-master\build64\sample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_slist_append referenced in function "public: virtual class std::shared_ptr cdecl AlibabaC loud::OSS::CurlHttpClient::makeRequest(class std::shared_ptr const &)" (?makeReq uest@CurlHttpClient@OSS@AlibabaCloud@@UEAA?AV?$shared_ptr@VHttpResponse@OSS@AlibabaCloud@@@std@@AEBV?$shared_ptr@VHttp Request@OSS@AlibabaCloud@@@5@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\s ample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_slist_free_a ll referenced in function "public: virtual class std::shared_ptr __cdecl Alibab aCloud::OSS::CurlHttpClient::makeRequest(class std::shared_ptr const &)" (?makeR equest@CurlHttpClient@OSS@AlibabaCloud@@UEAA?AV?$shared_ptr@VHttpResponse@OSS@AlibabaCloud@@@std@@AEBV?$shared_ptr@VHt tpRequest@OSS@AlibabaCloud@@@5@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64 \sample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_easy_strerro r referenced in function "public: virtual class std::shared_ptr cdecl Alibaba Cloud::OSS::CurlHttpClient::makeRequest(class std::shared_ptr const &)" (?makeRe quest@CurlHttpClient@OSS@AlibabaCloud@@UEAA?AV?$shared_ptr@VHttpResponse@OSS@AlibabaCloud@@@std@@AEBV?$shared_ptr@VHtt pRequest@OSS@AlibabaCloud@@@5@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\ sample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol __imp_curl_easy_init re ferenced in function "private: bool cdecl AlibabaCloud::OSS::CurlContainer::growPool(void)" (?growPool@CurlContainer @OSS@AlibabaCloud@@AEAA_NXZ) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sampl e\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_easy_setopt referenced in function "public: virtual class std::shared_ptr cdecl AlibabaCl oud::OSS::CurlHttpClient::makeRequest(class std::shared_ptr const &)" (?makeRequ est@CurlHttpClient@OSS@AlibabaCloud@@UEAA?AV?$shared_ptr@VHttpResponse@OSS@AlibabaCloud@@@std@@AEBV?$shared_ptr@VHttpR equest@OSS@AlibabaCloud@@@5@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sa mple\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_easy_perform referenced in function "public: virtual class std::shared_ptr cdecl AlibabaC loud::OSS::CurlHttpClient::makeRequest(class std::shared_ptr const &)" (?makeReq uest@CurlHttpClient@OSS@AlibabaCloud@@UEAA?AV?$shared_ptr@VHttpResponse@OSS@AlibabaCloud@@@std@@AEBV?$shared_ptr@VHttp Request@OSS@AlibabaCloud@@@5@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\s ample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_easy_cleanup referenced in function "public: cdecl AlibabaCloud::OSS::CurlContainer::~CurlContainer(void)" (??1CurlContainer@OSS @AlibabaCloud@@QEAA@XZ) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp -sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_easy_getinfo referenced in function "public: virtual class std::shared_ptr __cdecl AlibabaC loud::OSS::CurlHttpClient::makeRequest(class std::shared_ptr const &)" (?makeReq uest@CurlHttpClient@OSS@AlibabaCloud@@UEAA?AV?$shared_ptr@VHttpResponse@OSS@AlibabaCloud@@@std@@AEBV?$shared_ptr@VHttp Request@OSS@AlibabaCloud@@@5@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\s ample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(CurlHttpClient.obj) : error LNK2019: unresolved external symbol imp_curl_easy_reset r eferenced in function "public: virtual class std::shared_ptr cdecl AlibabaClo ud::OSS::CurlHttpClient::makeRequest(class std::shared_ptr const &)" (?makeReque st@CurlHttpClient@OSS@AlibabaCloud@@UEAA?AV?$shared_ptr@VHttpResponse@OSS@AlibabaCloud@@@std@@AEBV?$shared_ptr@VHttpRe quest@OSS@AlibabaCloud@@@5@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sam ple\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_MD_CTX_init referenced in fu nction "class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCloud:: OSS::ComputeContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OSS@Ali babaCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@std @@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.vcx proj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_MD_CTX_create referenced in function "class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCloud ::OSS::ComputeContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OSS@A libabaCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@s td@@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.v cxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_MD_CTX_destroy referenced in function "class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaClou d::OSS::ComputeContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OSS@ AlibabaCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@ std@@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample. vcxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_MD_CTX_set_flags referenced in function "class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCl oud::OSS::ComputeContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OS S@AlibabaCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@ D@std@@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sampl e.vcxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_DigestInit_ex referenced in function "class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl AlibabaCloud ::OSS::ComputeContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OSS@A libabaCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@s td@@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.v cxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_DigestUpdate referenced in f unction "class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCloud: :OSS::ComputeContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OSS@Al ibabaCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@st d@@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.vc xproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_DigestFinal_ex referenced in function "class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl AlibabaClou d::OSS::ComputeContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OSS@ AlibabaCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@ std@@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample. vcxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_EncodeBlock referenced in fu nction "class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCloud:: OSS::ComputeContentMD5(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentMD5@OSS@Aliba baCloud@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@std@@ @4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.vcxpr oj] alibabacloud-oss-cpp-sdk.lib(HmacSha1Signer.obj) : error LNK2001: unresolved external symbol EVP_EncodeBlock [D:\mai qi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol EVP_md5 referenced in function " class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCloud::OSS::Com puteContentETag(class std::basic_istream<char,struct std::char_traits > &)" (?ComputeContentETag@OSS@AlibabaClou d@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_istream@DU?$char_traits@D@std@@@4@@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(Utils.obj) : error LNK2019: unresolved external symbol MD5 referenced in function "clas s std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCloud::OSS::Compute ContentETag(char const *,unsigned int64)" (?ComputeContentETag@OSS@AlibabaCloud@@YA?AV?$basic_string@DU?$char_traits @D@std@@V?$allocator@D@2@@std@@PEBD_K@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\b uild64\sample\cpp-sdk-sample.vcxproj] alibabacloud-oss-cpp-sdk.lib(HmacSha1Signer.obj) : error LNK2019: unresolved external symbol EVP_sha1 referenced in function "public: virtual class std::basic_string<char,struct std::char_traits,class std::allocator > cd ecl AlibabaCloud::OSS::HmacSha1Signer::generate(class std::basic_string<char,struct std::char_traits,class std:: allocator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > cons t &)const " (?generate@HmacSha1Signer@OSS@AlibabaCloud@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@ @std@@AEBV45@0@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-s ample.vcxproj] alibabacloud-oss-cpp-sdk.lib(HmacSha1Signer.obj) : error LNK2019: unresolved external symbol HMAC referenced in func tion "public: virtual class std::basic_string<char,struct std::char_traits,class std::allocator > cdecl AlibabaCloud::OSS::HmacSha1Signer::generate(class std::basic_string<char,struct std::char_traits,class std::allo cator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &) const " (?generate@HmacSha1Signer@OSS@AlibabaCloud@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std @@AEBV45@0@Z) [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\cpp-sdk-sampl e.vcxproj] D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-master\build64\sample\Release\cpp-sdk-sample.exe : fatal error LNK1120: 23 unresolved externals [D:\maiqi\thirdPart\OSS\aliyun-oss-cpp-sdk-master\aliyun-oss-cpp-sdk-m aster\build64\sample\cpp-sdk-sample.vcxproj]

12 Warning(s)
25 Error(s)
huiguangjun commented 5 years ago

该sdk 自带的 第三库 是 win32 版本的。 月底发布的版本会增加 x64的依赖库。

如果你着急的话,你可以 自己编译libcurl 和 openssl,然后 修改 aliyun-oss-cpp-sdk\CMakeLists.txt 文件,把 三个地方指到 你编译好的路径上。 set(CRYPTO_LIBS ${CMAKE_SOURCE_DIR}/third_party/lib/${WLIB_TARGET}/ssleay32.lib ${CMAKE_SOURCE_DIR}/third_party/lib/${WLIB_TARGET}/libeay32.lib)

set(CLIENT_LIBS ${CMAKE_SOURCE_DIR}/third_party/lib/${WLIB_TARGET}/libcurl.lib)

DannyJieweiLi commented 5 years ago

ok, 明白了,我现在自己编译了64位的先用着,等你们更新了我再用你们提供的。 谢谢

huiguangjun commented 5 years ago

dev-1903 版本增加了x64 的 支持。 使用cmake 编译是,可以通过 -A x64 切换。 cmake .. -A x64 -DXXXXX