gpt4 book ai didi

c++ - 使用 MS Visual Studio 9 的 C++ 中无法解析的外部符号

转载 作者:太空宇宙 更新时间:2023-11-04 05:31:14 25 4
gpt4 key购买 nike

我的代码将类似于以下代码:

class DMLGroup
{
public:
DMLGroup();
~DMLGroup();
void SetName(string name);
private:
string mName;
};
void DMLGroup::SetName(string nm){
mName.assign( nm );
}

int main()
{
string api="API_DML";
DMLGroup * dmlGr = new DMLGroup();
dmlGr->SetName(api.c_str()); //Getting link error with this statement
}

我可以编译上述代码,但无法在 Windows 7 32 位操作系统上使用 MS Visual Studio 9 进行链接。

注意:我能够在 suselinux-x8664 平台上成功编译、链接和运行。问题仅出现在 Windows 上

请告诉我如何解决这个问题?

最佳答案

以下代码可以正常编译和链接:

#include "stdafx.h"
#include <string>

class DMLGroup
{
public:
DMLGroup() {}
~DMLGroup(){}
void SetName(std::string name);
private:
std::string mName;
};
void DMLGroup::SetName(std::string nm){
mName.assign( nm );
}

int main()
{
std::string api="API_DML";
DMLGroup * dmlGr = new DMLGroup();
dmlGr->SetName(api.c_str()); //Getting link error with this statement
}

我改变了什么:

  • #included stdafx.h 因为它是 VS 标准 - 你可以将其关闭
  • #includes 因为它丢失了
  • 用 std::装饰字符串的每次使用 - 因为很可能您会在头文件中使用类定义,而您根本不使用“使用命名空间”
  • 为构造函数和析构函数提供默认实现

仅此而已。检查上面部分中缺少的内容,或者提供一个暴露问题的示例并提供链接器错误消息。

关于c++ - 使用 MS Visual Studio 9 的 C++ 中无法解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17442434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com