c++开发过程中遇到的问题及解决方案

本文解答了VS编译过程中常见的几个问题,包括未解析的外部符号错误、操作符匹配失败及输出目录设置不当等问题,并提供了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



问题一:

1>JForm.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall JFC::JForm::~JForm(void)" (??1JForm@JFC@@UAE@XZ),该符号在函数 "public: virtual void * __thiscall JFC::JForm::`scalar deleting destructor'(unsigned int)" (??_GJForm@JFC@@UAEPAXI@Z) 中被引用
1>LoginForm.obj : error LNK2001: 无法解析的外部符号 "public: virtual __thiscall JFC::JForm::~JForm(void)" (
??1JForm@JFC@@UAE@XZ)

产生的原因: “无法解析的外部命令”这种问题,应当就是头文件*.h定义了函数名,但是对应的*.cpp文件找不到,或者是*.cpp文件中未有函数名对应的实体。

                          在.cpp的文件中实现函数即可

 

问题二:没有与这些操作符匹配的">>"运算符

     解决方案是:引入头文件<string>


问题三:vs中改变项目目录位置如把生成的文件输出到bin目录中,则可能出现如下问题:

               这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。

为了使输出到Bin目录文件更少,可以把中间中间目录改为Debug目录下,否则Bin目录会出现很对编译的临时文件

   解决方案:在VS配置属性->常规->输出目录和目标文件与VS配置属性->连接器->输出文件,保持一致即可




3、

解决方案:

 

    我们可以修改两个工程文件来把VS2012的工程文件一直到VS2010中去。

    首先当然是修改解决方案文件(.sln文件)。

    使用记事本打开,把里面的

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

改成

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

    然后修改工程文件(.vcxproj文件)

    使用记事本打开,把两个带有v110标签的语句删了,

    <PlatformToolset>v110</PlatformToolset>

现在就可以了。

 

只修改第一个可以移植到VS2010中,但是无法编译,只有修改了第二个工程文件才可以。

 

现在就可以在VS2012这个优秀的IDE上面写程序,最后通过上述方法移植到VS2010上去了。


4、 vs2010中编译gsoap时
  编译可能产生问题 stdsoap2.obj : error LNK2001: 无法解析的外部符号 namespaces
处理:在工程中定义 WITH_NONAMESPACES 宏.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值