VS2005写的静态库到VS2010出错的处理

Visual Studio 2010 C++开发实战指南:从环境配置到项目调试 C++作为经典的编程语言,其开发环境配置与项目构建是每位开发者必须掌握的基础技能。在Windows平台,Visual Studio作为主流的集成开发环境,其项目配置、编译链接原理直接影响程序的构建与运行。对于需要维护遗留系统或特定行业应用的开发者而言,理解经典IDE如Visual Studio 2010的工程结构、调试技巧与依赖管理具有重要的技术价值。本文聚焦于VS2010环境下的C++项目开发,通过解析**MFC库集成**与**第三方依赖配置**等核心问题,提供从环境准备、项目创建到错误排查的完整实践路径 阅读详情

       今天装了vs2010, 写了一个test,调用了以前用vs2005写的一个调试用的日志类,链接死活过不了,又是库冲突 ,又是无法解析外部符号。用错误内容及vs2005与vs2010搜了半天都没找到解决办法。后来找到说是string在旧版编译器中编译的结果在新版本里有区别,于是把库拿到vs2010重新编译,再拿到项目中,终于是通过了。

      贴出错误:

     

1>  AMobileDeviceListener.cpp
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\format\alt_sstream_impl.hpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (__imp_??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ),该符号在函数 __unwindfunclet$??0DebugLogFun@tongbu@@AAE@XZ$0 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::basic_ofstream<char,struct std::char_traits<char> >(char const *,int,int)" (__imp_??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z),该符号在函数 "private: __thiscall tongbu::DebugLogFun::DebugLogFun(void)" (??0DebugLogFun@tongbu@@AAE@XZ) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::close(void)" (__imp_?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ),该符号在函数 "private: virtual __thiscall tongbu::DebugLogFun::~DebugLogFun(void)" (??1DebugLogFun@tongbu@@EAE@XZ) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: int __thiscall std::ios_base::width(int)" (__imp_?width@ios_base@std@@QAEHH@Z),该符号在函数 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__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),该符号在函数 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" (__imp_?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z),该符号在函数 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static int __cdecl std::char_traits<char>::eof(void)" (__imp_?eof@?$char_traits@D@std@@SAHXZ),该符号在函数 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: int __thiscall std::ios_base::width(void)const " (__imp_?width@ios_base@std@@QBEHXZ),该符号在函数 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (__imp_?length@?$char_traits@D@std@@SAIPBD@Z),该符号在函数 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (__imp_?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ),该符号在函数 "public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Sentry_base::_Sentry_base(class std::basic_ostream<char,struct std::char_traits<char> > &)" (??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z) 中被引用
1>DebugLogLib.lib(DebugLogFuc.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (__imp_?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ),该符号在函数 "public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Sentry_base::~_Sentry_base(void)" (??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ) 中被引用
1>E:\downloadCode\ios安装器相关\iphonedisksolution\Debug\Test.exe : fatal error LNK1120: 11 个无法解析的外部命令

VS2013 C++项目集成JsonCpp:从编译配置到实战应用全解析 JSON作为一种轻量级数据交换格式,已成为现代软件开发中配置文件和网络数据传输的事实标准。其基于文本、易于阅读和编写的特性,使其在跨平台数据序列化场景中广泛应用。在C++项目中处理JSON数据,通常需要借助第三方库来实现解析与生成。JsonCpp作为一款成熟稳定的纯C++库,以其良好的兼容性和直观的API设计,成为许多历史项目或特定环境下的首选方案。在Visual Studio 2013这类较旧的开发环境中,集成第三方库常面临编译配置与运行时库匹配等工程实践挑战。本文以JsonCpp为例,详细阐述了在VS2 阅读详情

相关推荐

VC++项目升级实战:从旧版迁移到VS2022的完整指南

在C++开发领域,编译器与工具链的升级是保障项目长期生命力的关键。现代C++标准(C++11/14/17/20)不仅引入了智能指针、lambda表达式等高效特性,还通过更严格的类型检查和内存安全机制,显著提升了代码的健壮性与性能。其技术价值在于,开发者能够利用先进的编译优化、强大的调试工具以及标准库的丰富组件,构建更高效、更安全的应用程序。这一升级过程在维护遗留系统、提升团队协作效率以及适配新操作系统等场景中尤为重要。本文聚焦于将Visual C++ 6.0、VS2008等旧项目迁移至Visual Stud

weixin_34197488的博客 424

解决:VS2010 中无法在Debug文件中找到生成的lib或dll文件

我的版本vs2010 专业版,高版本的也可以试试这个方法 当我们需要生成静态链接库lib文件、动态链接库dll文件,都需要在工程路径中找到,比如在Debug文件中,但有时候会出现写好文件编译生成时,在Debug文件下找不到想要的文件,自然也就无法调用或者时查看里面的函数类型。 解决办法: 注意:最好先配置好你要生成文件的格式,然后再改路径 右键工程》属性》配置属性》常规》输出目录 把默认的 $ (...

XuXing的博客 4434

企业级AI Agent平台建设方案

本报告将深入剖析构成一个顶级AI Agent平台的各个功能层面,为构建者提供一份全面的战略蓝图。

分享AI和大数据领域的知识和研究 1587

vs2010 调试时无法进入静态库源代码解决办法

我的解决办法是:    项目--》属性--》配置属性---》公共语言运行时支持(右边): 无公共语言运行时支持   项目--》属性--》配置属性---》c/c++----》常规---》公共语言运行时支持(右边): 无公共语言运行时支持 瞎猫遇到死耗子,解决了之前的问题,至于为什么我也不解,客官若知道,不妨留下一言,指点下,不甚感激。。

wswxfwps的专栏 8555

手写数字数据集MNIST

文章目录一、 简介二、下载MNIST数据集训练集和测试集的长度输出图像数据和标记数据的形状显示手写数字图片输出数据集中的第1个样本显示图片 一、 简介 MNIST是一个非常有名的手写体数字识别数据集(手写数字灰度图像数据集),在很多资料中,这个数据集都会被用作深度学习的入门样例。 MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。由250个不同的人手写而成。 每一张图

qq_37289115的博客 1万+

从零开始理解Linux中断架构(1)-前言

前段时间在转行手撸WIFI路由器,搞wifi路由器需要理解网络驱动程序,以太网卡驱动程序,无线WIFI驱动程序,而网卡驱动的关键路径就在中断程序中,需要了解NIC设备驱动程序如何收发数据,为了彻底的知道数据包是如何二层传递上来的,又需要了解一点Linux中断系统。第一次看到这张表是无感的,大概能够看懂的就是那个中断次数,因为不停的cat,这个数值会一直不停的增加。第一列是逻辑中断号,第二三列是中断次数,第四列是中断控制器的名字,第五列是硬件中断号,第六列 中断类型,第七列是 中断源关联设备。

maxleng的专栏 881

vs2010引入ado后提示 无法打开源文件 …/Debug/msado15.tlh

vc++2010中,要使用ado操作数据库,所以在stdafx.h中引入了ado的dll库,引入代码如下 #import “C:/Program Files/Common Files/System/ado/msado15.dll” no_namespace rename(“EOF”,”adoEOF”) rename(“BOF”,”adoBOF”) 编译器提示 intelliSense: 无法

u014493318的专栏 8873

深度剖析XY2-100与SL2-100协议:解锁激光打标核心技术密码

XY2-100和SL2-100是激光打标领域的两种核心控制协议。XY2-100协议采用串行通信,指令集简单,适合常规打标任务,具有成本优势;SL2-100协议支持更高速率(1Mbps以上),具备曲线插补等高级指令,在精密加工领域表现突出。两者的主要差异体现在数据传输(帧结构、速率)、指令集(功能、数量)、参数调节(范围、精度)和错误处理机制等方面。实际应用中,XY2-100适合简单图形的大批量生产,SL2-100更胜任复杂曲面的高精度加工。选择时需综合考虑打标需求、设备兼容性和成本因素,未来两种协议将持续优

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 959

visual studio 写静态库文件时候,error:无法打开源文件“stdafx.h"

解决方法: 打开项目–属性–C/C++–常规–附加包含目录–添加 $(ProjectDir) 此时就可以消除error

Sunshine__love的博客 5740

人工智能面试总结-Python

B站:啥都会一点的研究生 公众号试读:啥都会一点的研究生 目录说说Python程序运行过程?说说Python的作用域?说说Python的数据结构?说说Python中可变与不可变类型?说说进程与线程?说说Python中的多线程?说说Python中的多进程?说说Python互斥锁与死锁?说说Lambda?说说Python的深拷贝与浅拷贝?说说Python多线程是否能用多个CPU,为什么?说说Python垃圾回收机制?说说Python里的生成器?说说迭代器与生成器的区别?说说Python 列表的 del,rem.

啥都生的博客 1万+

Python代码加密与发布方案详解

本文详细介绍了多种Python代码保护方案,从基础加密到高级混淆,以及商业化发布的最佳实践。基础加密方案包括编译为字节码和使用PyArmor基础加密,适合临时保护和小项目。商业级加密方案如Cython编译和Nuitka完整打包,提供更高的保护强度和执行效率。高级混淆方案涉及控制流混淆、字符串加密和完整混淆工具链,进一步增加逆向难度。商业化发布方案则强调许可证系统集成、硬件绑定保护和完整发布流程。此外,文章还探讨了反逆向技术、最佳实践建议和常见问题解决方法。通过组合使用这些技术,可以构建出适合不同安全需求的P

数据知道的博客 1万+

vs2010 ;, Debug应用程序无法正常启动(0xc0000000d).

背景: 今天遇到这样的一个诡异问题: 用一台机上生成的.dll 文件不能用(Debug模式下生成的), 另一台机生成就..    最终经过多次发现,原来是编译器本身设置的问题,不是程序代码的问题..     我已经清理了.icph ,就生成的debug 等文件夹, 都没有成功..     注: 在Release 情况下没有出现这种情况 ...   解决的方案参考:http://stacko

W_SX12553的专栏 8056

SpringBoot 系列教程(十二):给大家推荐20个SpringBoot开源项目,私活必备

基于 SpringBoot2.x + Shiro 实现了用户管理、个人微信、支付宝支付,内置扫码支付、后台回调、订单查询、限流等一系列功能

Thinkingcao的专栏 2840

总结VS2010+Opencv的各种遇到的问题

1.LNK2005:转自:http://blog.sina.com.cn/s/blog_82fe7edc0100zq97.html.今天在一个新安装的环境下调试程序,opencv+VS 2008,遇到了msvcprtd.lib(MSVCP90D.dll) : error LNK2005这个错误,刚开始没注意,以为是opencv的库添加的有问题,仔细检查了之后发现库添加的没有问题,于是想到是环境

zdx19880830的专栏 689

❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)

文章目录强烈推荐系列教程,建议学起来!!一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置4.2手动添加镜像源4.3永久配置镜像源五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件六.美女背景七.自定义脚本开头八、这个前言一定要看九、python入门十、python缩进十一、Python注释1.单行注释2.多行注释十二、Python 变量1.变量定义理解2. 变量名命名3. 分

全栈川川 26万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MFC工程 vs2010 C++编译JSONCPP 静态库

使用VS2008编译jsoncpp源码为静态库,在自己工程中使用 1. VS2008 2. MFC工程下使用 3. JSON源码,下载地址: 4. 解压下载的问价:jsoncpp-src-0.5.0.tar.gz 5.打开源码的工程E:\vs2008_project\json\jsoncpp-src-0.5.0\makefiles\vs71\jsoncpp.sln 6.生成Debug和

Devin Zhou 1572

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Qt4.6.2已编译二进制版本在VS2005中的问题

结论1:如果你想把Qt4.6.2安装在VS2005中,又不想花时间编译,请下载和安装qt-win-opensource-4.6.2-vs2008,并单独编译“QT安装路径/src/winmain/” 结论2:在安装qt-win-opensource-4.6.2-vs2008(msvc9/vs2008已编译版)之前千万不要安装qt-sdk-win-opensource-2010.02.1(m

flyoxs的专栏 3960

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Boost+QT+VTK+VS2005环境配置方法

配置这个东西花了我好几天时间,以下是我总结的方法1.安装boost,下载boost 1.44的安装程序,用vs系列就不用自己编译了下载地址:http://www.boostpro.com/download/boost_1_44_setup.exe安装boost的时候,记得勾选所有Variants,否则后面编译VTK的时候可能出现找不到某lib的情况。boost安装成功后,打开VS,编译个例子试试看成功没。成功了就继续。2.为VS2005配置QT,QT也有直接的安装包,但是不建议使用,还是自行编译的好,我用安

轻疯 清风 4776

非cmake方式Visual C++ 2010编译mysql-connector-C++静态库

1. 缘起  从mirrors.sohu.com/mysql上下载已编译好的mysql-connector-c++ 1.1.8,按网络上的教程加入到visual c++ 2010的工程,访问MySQL中的数据表时,执行如下代码出错:  boost::scoped_ptr res (stat->executeQuery("SELECT id, 'mary' FROM test"));  whi

暧暧远人村,依依墟里烟 ... 1061

VS2010 常见错误类型汇总

开发路漫漫,尤其对于刚从事开发不久的新手来说,常常遇到一些稀奇古怪的错误,很是头疼,鉴于自己在开发过程中常遇到的几个错误做个分享,希望对大家有所帮助: 错误1:   在创建完win32的DLL后,编译时出现:error LNK2005:_DllMain@12已经在dllmain.obj中定义 解决方法:   在.cpp文件的开头加入如下代码:   #ifdef _X86_  e...

ahi5369的博客 516

WIN7+VS2010 ACE配置

操作系统:WIN7 编译环境:VS2010版 ACE版本:ACE-6.0.4 安装过程: 下载完ACE后将其解压,我的解压路径为C:\ACE_wrappers。 1 设置操作系统的环境变量 选择“控制面板\系统和安全\系统”中的“高级系统设置\环境变量”在其中添加一个名为ACE_ROOT的系统环境变量,值为刚才ACE解压的路径“E:\devLib\ACE-6.0.1\ACE_wrapp

yach1603的专栏 534

写一篇自己用的OpenCV配置

步骤一:下载安装OpenCV 你是什么版本的Visual Studio,最好就去下载对应的匹配的OpenCV的版本。你在官网下载OpenCV的时候,它的exe文件名一般都带有支持的VS版本 如:![代表支持vc14和vc15](https://img-blog.csdnimg.cn/20200228153806215.png) vc14和vc15代表的意思看下面: Visual Studio 6 ...

qq_38843532的博客 260

VS2005下使用CPPUNIT进行单元测试(全过程)

一、单元测试与CPPUNIT简介   几乎每个开发人员都写过测试代码,但是往往这些代码不系统,也没有良好的管理,同时在测试代码编写过程中也有很多重复的劳动,比较繁琐。在一个软件开发过程中,往往会进行很多修改,迭代开发的模型随处可见,如何验证程序的功能、性能和结构是否符合要求是一项重要的工作。   单元测试是属于白盒测试和结构性测试,一般由开发人员开展,当然如果有好的测试工具支持,测试人员甚至最

Howard_Liu1314的专栏 1300

linux boost 编译出错,Boost的release版本编译及一个getruntimeclass的错误分析

首先下载bjam.exe,复制到 $BOOST$ 目录下。或者自己生成bjam,打开Visual Studio 2008 命令提示窗口$BOOST$\tools\jam\src,执行 build.bat 会在$BOOST$\tools\jam\src\bin.ntx86 生成 bjam.exe 文件。复制文件 bjam.exe 文件到 $BOOST$\下。1.完全编译安装:bjam --tools...

weixin_35773130的博客 592

java zlib1.dll,zlib1.2.11静态编译

1.进入官网http://zlib.net/,下载且解压zlib1211.zip;2. 打开已解压的zlib-1.2.11目录,找到win32文件夹3.将Makefile.msc复制到上一层,也就是图2,未进入win32前的地方4.打开VS2013命令行工具,使用cd命令进入zlib-1.2.11目录(第3步Makefile.msc所在的目录)5.键入命令行:nmake /f Makefile.m...

weixin_42319396的博客 675

VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布

2011-10-27 22:12 3004人阅读 评论(6) 收藏 举报 qt多线程编译器2010includepath 为什么要在VS2008中使用QT静态编译呢?很简单,因为VS2008编译器编译出来的文件比mingw编译的要几乎小一半。 好了现在我们来做些准备工作,VS2008自然要安装的,然后打上SP1的补丁。然后我们要到QT主页下载,QT4.7.4版的源码包 qt-e

luhang84的专栏 850
上一篇: CDC,CClientDC,CPaintDC,CWindowDC 比较区别
下一篇: 遇到多线程问题,关于MyDownload
AstrayLinux
博客等级 码龄15年 55粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值