visual studio上的AWS C++SDK链接器错误
AWS C++ SDK linker error on visual studio
我正试图将aws-sdk-ec2链接到我的应用程序,但我收到了Visual Studio 2013中的链接器错误。我已成功编译sdk并链接aws-sdk-core.lib和aws-sdk-ec2.lib。
我得到的错误是:
错误1错误LNK2001:未解析的外部符号"char const*const Aws::Http::CONTENT_TYPE_HEADER"(?CONTENT_TYPE_HEADER@Http@Aws@@3PBDB)E:\Users\..\..\。。\main.obj
有什么问题吗?我需要链接任何aws-sdk-*组件吗?
是的,visual-c++链接器的输出在这个链接器上真的很神秘。编译代码时尚未声明dll导入内容。错误的真正含义是链接器找不到任何符号。尝试将USE_IMPORT_EXPORT添加到编译器标志中。
你是在使用NuGet包还是从源代码编译?
我已经通过添加解决了这个问题
USE_IMPORT_EXPORT
根据我的预处理器定义,项目->属性->c/c++->预处理器
当动态链接库时,错误消失了:
- 定义的USE_IMPORT_EXPORT
我在代码中使用了以下内容:
#define USE_IMPORT_EXPORT
但是你肯定可以用编译器设置来定义它项目配置属性(*)->C/C++->预处理器->->预处理器定义
现在,我看到了一条关于官方代码存储中定义的官方帮助:https://github.com/aws/aws-sdk-cpp/blob/main/Docs/SDK_usage_guide.md#build-定义
- 将链接更改为动态链接:
对于调试版本:项目配置属性(*)->C/C++->代码生成->运行库设置为多线程调试DLL(/MDd)而不是静态链接
在发布版本中,请确保设置多线程DLL(/MD)并链接到库二进制文件的发布版本。
*-右键单击解决方案浏览器和属性中的项目
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误