LNK2001:unresolved external symbol "struct Distance Distance_struct"(?Distance_struct@@3UDistance@@A

解决LNK2001错误
本文解决了在Visual Studio 2008中实现WTL教程时出现的LNK2001未解析外部符号错误。通过正确声明和定义CAppModule模块,解决了编译链接阶段的问题。

参考地址:http://blog.youkuaiyun.com/henry_sea/article/details/6185454

参考原文:

, luther baker <lutherbaker@...> wrote:

> I am walking through this tutorial in visual studio 2008

> http://www.codeproject.com/KB/wtl/wtl4mfc2.aspx


> I am about half way down and per the tutorial, I have implemented

stdafx.h, main.cpp and MyWindow.h. When I try to build this for the

first time, I am receiving:

> error LNK2001: unresolved external symbol "class WTL::CAppModule

_Module" (?_Module@@3VCAppModule@WTL@@A)

>C:/home/lbaker/dev/vstudio/real-estate-czar/vs2008/Debug/real-

estate-czar.exe : fatal error LNK1120: 1 unresolved externals

> I most definitely have this line in my stdafx.h file:

> extern CAppModule _Module;

> But I'm not sure where this gets resolved and I'm having trouble

drilling down to find it.

> Does anyone have some suggestions?

Thanks,

> -Luther

Defining an "extern" will only make the variable visible across the

source files. You still have to define "CAppModule _Module;"

somewhere in your source code .cpp file. If you are working on

Project.exe, Project.cpp would be a perfect place to define it.

Best regards,

He Shiming



附:http://www.cnblogs.com/luliang/archive/2008/08/21/1272746.html(extern的用法链接)

      http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html(extern"C"的深入分析)

      http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html(C++项目中的extern "C" {})


文章不难,相信大家都能看的懂


我是用Qt Creator 编写时遇到的该问题,本人菜鸟,所以还是费了点周折的,想法是将一个结构体全局化,在不同的地方可以调用

于是在头文件struct_values.h中定义:

struct Distance
{
     int ID;
};
extern struct Distance Distance_struct;

这样就可以在其他地方用了,但是根据上文可以看出在需要引用的.cpp文件中需要声明

在mainWindow.cpp的开始声明:

Distance Distance_struct;

是开始部分,也就是和#include一块的地方

这样在该文件的所有地方都可以使用了:

void func1()
{
    Distance_struct.ID=1;
    ui->textBrowser->append(QString::Number(Distance_struct.ID));
}
void func2()
{
    Distance_struct.ID=2;
    ui->textBrowser->append(QString::Number(Distance_struct.ID));
}


O了,可以进行下一步了,去吃饭大笑



Error 1 error LNK2001: unresolved external symbol "public: __cdecl TransformToHFSPosition::~TransformToHFSPosition(void)" (??1TransformToHFSPosition@@QEAA@XZ) e:\CT\BRANCHES\Feature\3310_PositionModWithMPR\Features\Recon\CTReconPipeline\ReconComNode\CTFunctorPositionModify.obj Error 2 error LNK2001: unresolved external symbol "public: __cdecl TransformFromHFSPosition::~TransformFromHFSPosition(void)" (??1TransformFromHFSPosition@@QEAA@XZ) e:\CT\BRANCHES\Feature\3310_PositionModWithMPR\Features\Recon\CTReconPipeline\ReconComNode\CTFunctorPositionModify.obj Error 3 error LNK2001: unresolved external symbol "public: __cdecl TransformBaseOnPatientPosition::~TransformBaseOnPatientPosition(void)" (??1TransformBaseOnPatientPosition@@QEAA@XZ) e:\CT\BRANCHES\Feature\3310_PositionModWithMPR\Features\Recon\CTReconPipeline\ReconComNode\CTFunctorPositionModify.obj Error 4 error LNK2001: unresolved external symbol "public: __cdecl PositionModify::PositionModify(void)" (??0PositionModify@@QEAA@XZ) e:\CT\BRANCHES\Feature\3310_PositionModWithMPR\Features\Recon\CTReconPipeline\ReconComNode\CTFunctorPositionModify.obj Error 5 error LNK2001: unresolved external symbol "public: bool __cdecl PositionModify::Init(struct PositionModifyParam const &)" (?Init@PositionModify@@QEAA_NAEBUPositionModifyParam@@@Z) e:\CT\BRANCHES\Feature\3310_PositionModWithMPR\Features\Recon\CTReconPipeline\ReconComNode\CTFunctorPositionModify.obj Error 6 error LNK2001: unresolved external symbol "public: bool __cdecl PositionModify::Process(int *,float *,float *,float *)" (?Process@PositionModify@@QEAA_NPEAHPEAM11@Z) e:\CT\BRANCHES\Feature\3310_PositionModWithMPR\Features\Recon\CTReconPipeline\ReconComNode\CTFunctorPositionModify.obj Error 7 error LNK2001: unresolved external symbol "public: __cdecl PositionModify::~PositionModify(void)" (??1PositionModify@@QEAA@XZ) e:\CT\BRANCHES\Feature\3310_PositionModWithMPR\Features\Recon\CTReconPipeline\ReconComNode\CTFunctorPositionModify.obj Error 8 error LNK2001: unreso
09-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值