在visualc2010项目中包含一个visual2005库
Including a visual 2005 library in a visual C 2010 project
我在Microsoft visual studio professional 2010下有一个c++qt5项目。我必须在我的项目中包括一个库.lib,它是用Microsoft Visual 2005编译的,并且依赖于STL的Visual 2005版本。因此,当我试图编译我的项目时,我得到了以下链接错误(以下是更多错误中的三个第一个错误):
libmegamatching.lib(BImage.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" (__imp_?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z)
libmegamatching.lib(makeCanonicalImage.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" (__imp_?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z)
M_Control.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" (__imp_?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z)
我的同事解决了将库封装到微软管理的C++库中的问题……但我还没有尝试,因为我对在我的项目中添加.NET依赖项不感兴趣。还有其他解决方案吗?当然,我不能用visual2010重新编译库,也不能更改我的可视化版本。
我正在考虑制作一个可视化的2005 std库.lib…但我不知道是否有办法做到这一点?
提前感谢
您要么需要[a]使用Visual C++2010重新编译库,要么[b]将库封装在自己的模块(DLL)中,并在其上提供一个平面C接口。
在单个模块中,不能混合使用不同主要版本的Visual C++库构建的对象。
相关文章:
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- 检查一个数组是否包含在另一个数组中,以相反的顺序,至少两次
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 当我在结构中包含多个数组时,我的程序会跳过一堆代码
- 一次包含一个 #include 表达式的多个头文件?
- 使用 #pragma 一次,#ifndef 在同一文件中包含保护
- 返回一个数组,该数组包含数组中的数量,该数组数量较小或等于给定数组中的元素
- 搜索字符串是否至少包含一次从 0 到 9 的所有数字的最有效方法
- C++ - 在类中包含不是类对象属性的变量是否是一种不好的做法
- 至少包含一次字符 X 的 S 的不同子字符串的数量
- 寻找一种在运行时检测 valgrind/memcheck 的方法,而无需包含 valgrind 标头
- 如何查找一组类型对是否包含一个元素作为第二个成员
- 制作一个包含 2 个 .cpps 和一个头文件的生成文件
- C++包含一组对象的类
- 我想在C++项目中包含一种脚本语言.Lua vs Bison/Yacc
- 为什么我可以在多个包含const int的cpp文件中包含一个头文件,而不会出现编译器错误
- 有没有办法将源代码格式化为每行只包含一条语句
- 双链接列表总是只包含一条记录
- 页眉应包含一次
- 头文件在整个程序中仅包含一次