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

来源:互联网 发布:松岗卓翼科技工资算法 编辑:程序博客网 时间:2024/04/28 18:49

参考地址:http://blog.csdn.net/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了,可以进行下一步了,去吃饭大笑



0 0
原创粉丝点击