c++ Rest SDK和微软单元测试同时使用失败
Failed to use C++ Rest SDK and Microsoft unit test at the same time
我有一个MFC项目,它在Visual Studio 2012下使用c++ Rest SDK (Casablanca
)来实现http客户端连接,并且可以很好地编译。
然后我添加了一个Microsoft单元测试项目,但是我不能成功地构建单元测试项目。
在我的主要项目中,环境设置为"在静态库中使用MFC", "无公共语言运行时支持"和"多线程调试(/MTd)"。我的测试项目的环境与主项目相同。错误信息显示:
" error LNK2005: "void * __cdecl operator new[](unsigned int)"(??_U@YAPAXI@Z)已经在libcpmtd.lib(newaop.obj)中定义。"
此外,我还尝试将测试项目的环境更改为"公共语言运行时支持(/clr)"answers"多线程调试DLL (/MDd)"。原来的错误消失了,但是新的错误出现了:
"使用/clr或/clr:pure编译时不支持error C1189: #error: "。C:program files (x86)microsoft visual studio 11.0vcincludeatomic line 9 "
我不知道如何克服这些问题。谁能给我一些建议或解决办法?谢谢。
CRT库对new、delete函数使用弱外部链接。MFC库还包含新的delete函数。这些函数要求在链接CRT库之前链接MFC库。请查看http://support.microsoft.com/kb/148652
基于VS2005的方案:
进入project>properties>configuration property>linker>input
add to "→Nafxcwd。自由Libcmtd.lib
添加到"忽略特定库"→Nafxcwd.lib; Libcmtd.lib
我发现通过使用NuGet Packmanager获得restsdk,即搜索Casablanca并选择cpprestsdk.v140.windesktop。这样可以确保所有所需的dll和库都被引用。
请检查:https://github.com/Microsoft/cpprestsdk/wiki/How-to-use-the-C--Rest-SDK-NuGet-package
http://codename26.rssing.com/chan-8623770/all_p85.html- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- MS 本机单元测试 - 断言::线程失败不起作用
- 数百个失败的单元测试
- C++单元测试项目 LoadLibrary 失败,出现"序号未找到"错误
- 不同的std::random_shuffle算法导致iOS模拟器单元测试失败
- 提升单元测试不会失败
- 为什么我的C++/CX单元测试没有失败
- cmake - 单元测试++链接单元测试二进制文件失败
- 单元测试不会失败,但挂在子例程调用上
- 单元测试失败,异常代码为c0000005
- 如何为单元测试生成文件打开失败
- 我可以只获得boost单元测试失败的日志输出吗?
- Visual Studio(2013)单元测试失败,C0000005
- c++ Rest SDK和微软单元测试同时使用失败
- 升压单元测试失败,出现错误-std::bad_typeid:Access违规-没有RTTI数据
- C++DoublyLinkedList单元测试通过智能初始化失败,但通过new初始化成功
- Boost 单元测试编译通过 Eclipse 失败