以下是CMaklist中声明OSS的方法
set(AliyunOSS_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" CACHE INTERNAL "AliyunOSS_INCLUDE_DIR")
set(AliyunOSS_LIBS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib" CACHE INTERNAL "AliyunOSS_LIBS_DIR")
set(AliyunOSS_LIBS "${CMAKE_CURRENT_SOURCE_DIR}/lib/alibabacloud-oss-cpp-sdk.lib" CACHE INTERNAL "AliyunOSS_LIBS")
add_custom_target(AliyunOSS ALL
COMMENT "This is a dummy target to include AliyunOSS in the solution"
)
OSS编译选项:BUILD_SHARED_LIBS=false, ENABLE_RTTI=false 得到动态库后,在另一个解决方案中链接时报错LINK2019,无法解析的外部符号(尝试过使用绝对路径链接,问题依旧)。
以下是CMaklist中声明OSS的方法 set(AliyunOSS_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" CACHE INTERNAL "AliyunOSS_INCLUDE_DIR") set(AliyunOSS_LIBS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib" CACHE INTERNAL "AliyunOSS_LIBS_DIR") set(AliyunOSS_LIBS "${CMAKE_CURRENT_SOURCE_DIR}/lib/alibabacloud-oss-cpp-sdk.lib" CACHE INTERNAL "AliyunOSS_LIBS") add_custom_target(AliyunOSS ALL COMMENT "This is a dummy target to include AliyunOSS in the solution" )
以下是使用OSS的CMakeList: SET(CMAKE_CXX_STANDARD 17) SET(CMAKE_CXX_STANDARD_REQUIRED TRUE) SET(CMAKE_INCLUDE_CURRENT_DIR ON) INCLUDE_DIRECTORIES(${AliyunOSS_INCLUDE_DIR}) LINK_DIRECTORIES(${AliyunOSS_LIBS_DIR}) ADD_LIBRARY( ${PROJECT_NAME} ${${PROJECT_NAME}_HEADS} ${${PROJECT_NAME}_SRCS} ${${PROJECT_NAME}_MOCS} ) TARGET_LINK_LIBRARIES( ${PROJECT_NAME} PRIVATE optimized ${AliyunOSS_LIBS} )
以下是VS2019的报错 错误 LNK2019 无法解析的外部符号 EVP_MD_CTX_init,函数 "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@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) 中引用了该符号
前略\build\App\alibabacloud-oss-cpp-sdk.lib(Utils.obj)