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

来源:互联网 发布:网络清洁器 编辑:程序博客网 时间:2024/05/16 12:23


问题一:

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 宏.
 

0 0