求醉三年txt百度云,白玉堂和展昭和白玉堂的!

我明明定义了变量为什么错误说没定义啊【c语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:534,649贴子:
我明明定义了变量为什么错误说没定义啊收藏
不知道,马克一下
登录百度帐号推荐应用window.onload=function () {
var oBox = document.getElementById("box");
var oDiv = oBox.getElementsByTagName("div");
/*-------------------箭头-------------------------*/
function first(){
oDiv[0].style.position="absolute";
oDiv[0].style.left="20px";
oDiv[0].style.top="150px";
oDiv[0].style.opacity="1";
简单粗暴点讲,代码不规范
你还没有登录,请先登录或注册慕课网帐号
今后也请多多指教!
var oBox = document.getElementById("box");
var oDiv = oBox.getElementsByTagName("div");这里定义的是局部变量,局部变量别的函数体是访问不到的,你把这2行移到first()函数体内即可。
你还没有登录,请先登录或注册慕课网帐号
53841人关注
Copyright (C)
All Rights Reserved | 京ICP备 号-2为什么会出现这个错误??&error LNK2005: 已经在*.obj中定义&&  编程中经常能遇到LNK2005错误&&重复定义错误,其实LNK2005错误并不是一个很难解决的错误,弄清楚它形成的原因,就可以轻松解决它了。&&造成LNK2005错误主要有以下几种情况:&&
1.重复定义全局变量。可能存在两种情况:&&&A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。
  正确的应该是在一个CPP文件中定义如下:
  int&& g_T
  那么在使用的CPP文件中就应该使用:
  extern&& int&& g_Test
  即可,如果还是使用int&& g_Test,那么就会产生LNK2005错误,一般错误错误信息类似:
  *.obj&& error&& LNK2005&& int&& book&& c?&& already&& defined&& in & *.obj
  切记的就是不能给变量赋值否则还是会有LNK2005错误。 &
  这里需要的是&声明&,不是&定义&!根据C++标准的规定,一个变量是声明,必须同时满足两个条件,否则就是定义:&&  (1)声明必须使用extern关键字
  (2)不能给变量赋初值 &
  所以,下面的是声明: &
    extern&& int&&&&  下面的是定义&&    int&&&&
    int&& a&& =&& 0;&&
    extern&& int&& a&& =0;&&& B、对于那么编程不是那么严谨的程序员,总是在需要使用变量的文件中随意定义一个全局变量,并且对于变量名也不予考虑,这也往往容易造成变量名重复,而造成LNK2005错误。&&2.头文件的包含重复。
  往往需要包含的头文件中含有变量、函数、类的定义,在其它使用的地方又不得不多次包含之,如果头文件中没有相关的宏等防止重复链接的措施,那么就会产生LNK2005错误。解决办法是在需要包含的头文件中做类似的处理:
& #ifndef&& MY_H_FILE&&&&&& //如果没有定义这个宏&&& #define&& MY_H_FILE&&&&&& //定义这个宏&&& &&.&&&&&& //头文件主体内容&&& &&.&&& #endif&&& 上面是使用宏来做的,也可以使用预编译来做,在头文件中加入:&&& #pragma&& once&&& //头文件主体&&
& 3.使用第三方的库造成的。
  这种情况主要是C运行期函数库和MFC的库冲突造成的。具体的办法就是将那个提示出错的库放到另外一个库的前面。另外选择不同的C函数库,可能会引起这个错误。微软和C有两种C运行期函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。另外一种是支持多线程的:msvcrt.lib。如果一个工程里,这两种函数库混合使用,可能会引起这个错误,一般情况下它需要MFC的库先于C运行期函数库被链接,因此建议使用支持多线程的msvcrt.lib。所以在使用第三方的库之前首先要知道它链接的是什么库,否则就可能造成LNK2005错误。如果不得不使用第三方的库,可以尝试按下面所说的方法修改,但不能保证一定能解决问题,前两种方法是微软提供的:&&& A、选择VC菜单Project-&Settings-&Link-&Catagory选择Input,再在Ignore&& libraries&& 的Edit栏中填入你需要忽略的库,如:Nafxcwd.Libcmtd.lib。然后在Object/library&& Modules的Edit栏中填入正确的库的顺序,这里需要你能确定什么是正确的顺序,呵呵,God&& bless&& you!&&& B、选择VC菜单Project-&Settings-&Link页,然后在Project&& Options的Edit栏中输入/verbose:lib,这样就可以在编译链接程序过程中在输出窗口看到链接的顺序了。&&& C、选择VC菜单Project-&Settings-&C/C++页,Catagory选择Code&& Generation后再在User&& Runtime&& libraray中选择MultiThread&& DLL等其他库,逐一尝试。&&
阅读(...) 评论()& 相关文章 &
VS2010无法查看自定义的普通变量解决办法( CXX0017: 错误: 没有找到符号 )
在使用VS2010调试程序时,可以通过”局部变量“窗口查看程序中局部变量的值,但是在一个方法中的自定义的普通变量怎么查看值呢?可以在监视窗口中添加你想跟踪监视的值的名称,但是今天遇到了一个问题,就是将我想跟踪的变量名(如循环中的i)添加到”监视1“窗口时,会提示”CXX0017:错误:没有找到符号”。在http://blog.csdn.net/xunixing/article/details/7892898 找到了答案,用了第一种方法就搞定了。这样在调试时,将鼠标放到你想查看的变量
前段时间发现VS调试器的Watch窗口无法观察全局变量的值 统统都是 CXX0017: Error: symbol "xxx" not found 加上 {,,"xxx.dll"} 也找不到,但也没留意 今天偶然发现其实原因很搞笑:因为我的全局变量都在一个namespace里面,所以在Watch窗口中必须要给此变量加上限定符才可以,如 name::xxx
CXX0017: 错误: 没有找到符号
编程环境:Visual Studio 2010 首先确定是在 Debug 配置状态。 初始解决方案如下: 错误现象:CXX0017: Error: symbol this not found 方法 1: 将编译优化选项设置为"/Od"就可以了。
工程右键 -& Properties -& Configuration Properites -& C/C++ -& Optimization -& Optimization: Disabled(/Od) 注:如果解决,程序可能存在逻辑错误 方法 2
编译器跳不到断点?CXX0017 Error?
最近在做一个手机开发,Debug的时候想设置一些变量做研究。不料不管怎么设置,断点都会莫名其妙地前后跳动。一问下面的add watch栏,它则悠悠吐出两行大字:Cxx0017:error symbol
not found。在下虽然不才,但搞断点还是拿手本领;可是这么一来什么都做不了,只能将原话拷下、求助WEB君去了。
原来Visual Studio君越来越有智慧,用不着的代码在编译过程中会自动跳掉,MS称之为Debug优化。只要将配置-c++-优化设为Disable即可。
的,而且POINT变量也已经消除了。如果你尝试着显示pt,将会导致“CXX0017:Error:Symbol‘POINT’ not found”(CXX0017:错误:POINT符号没有找到)的错误。如同这个例子非常简单一样,真正知道到底发生了什么事的唯一途径便是调试汇编代码。 7.4 测试版本
现在是提出这个非常重要的测试问题的适当时机了:如果你不能确信调试版本和发行版本有相同的执行行为,QA到底应使用哪个版本进行测试呢?记住,调试版本和发行版本是来自同一个源程序的但执行效果不同的程序
visual studio 2010 创建新项目时,提示无法找到项目模板的一个解决方案
  今天打开visual Studio 2010创建新项目时,提示:"Unable to find 'E:\vs2010\Common7\IDE\projectTemplatesCache\Csharp\web\1033\WebApplicationproject40.zip\WebApplicationproject40.vstemplate“. please repair the product to fix this issue.“   大意是:无法找到项目模板,因而不能创建对应的项目
有关vs2010 release版本调试this指针问题
代码。但是对于被优化的代码还是会存在无法设置断点的问题。 比如直接被优化到inline函数的函数是无法设置断点的,没有使用的变量赋值是无法设置断点的。 2.vs2010断点this指针错误的问题 在断点调试下,很多时候会发现this指针下的变量完全不正确,或者说是目前的this指针数值根本不正确。这个是因为正常情况下汇编在调用类函数前会把this指针放置到ebx或者rbx内,但是在优化时,有些时候会把this指针lea到ebx/rbx的步骤给省略掉。导致了当前显示的this对象完全错误。解决办法如下: 1.使用调用函数栈,到上层。直接看进入函数前的函数对象,这里应该就是正确值 2.使用汇编,看对成员对象赋值的语句推算出对象基地址。直接通过地址查看对象
那就先找到的先进入配置序列。生成了CmakeCach.txt文件,在之后的编译过程将会因为版本之间的差别而产生各式各样的莫名其妙的错误,如果在你编译这一类的程序是出现莫名的错误请查看项目(project)-》##项目属性(property)-》配置属性(configuration property)-》连接器(Linker)-》输出(input)-》Additional Dependency,以及C/C++-》常规(General)中的依赖项目录。
简单的经验就这些,一下我将对我在这
在函数 _x264_encoder_close 中被引用 2&libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_analyse_init_costs 中被引用 这是由于libx264工程没有添加lookahead.c文件,从而缺少几个函数的定义造成的,添加lookahead.c进工程。 再次编译,修改lookahead.c中的几个错误,成功1个,失败1个,提示: 2&libx264.lib
VS2010编译x264()--------x264学习笔记ByMK
中被引用 这是由于libx264工程没有添加lookahead.c文件,从而缺少几个函数的定义造成的,添加lookahead.c进工程。 再次编译,修改lookahead.c中的几个错误,成功1个,失败1个,提示: 2&libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_analyse_init_costs 中被引用 这个只要定义一下log2f(x)就可以了。 在osdep.h中添加log2f(x)定义
ISoapConnectorPtr C
// Connect to the service.
Connector.CreateInstance(__uuidof(HttpConnector30));
//HttpConnector30 失败,无法这样创建Connector,CXX0017 Error :Symbol “HttpConnector30“ not found(摇头、叹气!)
Connector-&Property["EndPointURL"] = "http
ISoapConnectorPtr C
// Connect to the service.
Connector.CreateInstance(__uuidof(HttpConnector30)); //HttpConnector30 失败,无法这样创建Connector,CXX0017 Error :Symbol “HttpConnector30“ not found(摇头、叹气!)
Connector-&Property["EndPointURL
ISoapConnectorPtr C
// Connect to the service.
Connector.CreateInstance(__uuidof(HttpConnector30));
//HttpConnector30 失败,无法这样创建Connector,CXX0017 Error :Symbol “HttpConnector30“ not found(摇头、叹气!)
Connector-&Property["EndPointURL"] = "http
ISoapConnectorPtr C
// Connect to the service.
Connector.CreateInstance(__uuidof(HttpConnector30));
//HttpConnector30 失败,无法这样创建Connector,CXX0017 Error :Symbol “HttpConnector30“ not found(摇头、叹气!)
Connector-&Property["EndPointURL"] = "http
如何查看程序所需的库文件
上次调试一个程序。程序在使用dlopen()出现错误。错误信息是加载动态库时,动态库中有未定义的符号。明明知道是动态库的问题,可是自己找了半天,没解决问题。张博士过来,一个ldd查看一下动态库就判断库有问题,再一个nm就找到错误的地方,然后重新ld了一下库,问题解决了。神奇了!我也用这几个命令检查过库,就是没发现问题,还是对命令的用法不熟啊。 这里把这几个命令好好整理一下,也算帮助记忆吧。(翻译的成居多,hehe) nm命令 这个命令列出目标文件的符号。如果没有指定目标文件,默认是a.out
vs2010下编译Xvid-1.3.2
RT Xvid-1.3.2提供的是VC6的项目,转换到VS2010会遇到三个问题,其中两个从网上找到答案 最先碰到的是,asm文件编译的时候,no such input file的错误。找到报错的asm文件,也就是colorspace_rgb_mmx.asm,colorspace_yuv_mmx.asm,colorspace_yuyv_mmx.asm这三个文件 右键属性,打开“自定义生成工具”的属性页,修改命令行为:nasm -o “$(IntDir)%(Filename).obj” -f
问题一:LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d231.” 解决方案:库名错误 安装2.4.6的应该添加库opencv_calib3d246.lib 问题二:未能以子节点形式启动MSBuild.exe 解决方案:重启vs2010
问题三:cannot find or open PDB file 问题 解决方案:工具-》选项 调试 符号;勾选Microsoft;F5运行程序;找到符号缓存,拷贝出来;去勾选Microsoft
早期的版本有vc可以直接编译的, 现在的没有vc版本了; 如果希望在windows上学习x264,可以直接找到vc版本; 这里例举一下,网上的两个版本方法: 一:《VS2010编译x264()》 如果你仅仅需要使用x264的话你可以到这下载:http://x264.nl/ x264的源码下载地址:http://www.videolan.org/developers/x264.html 历史版本下载地址:ftp://ftp.videolan.org/pub/videolan
\LAVSplitter.exp 1&LAVSplitter.exp : warning LNK4078: 找到多个“.drectve”节,它们具有不同的特性(&avformat-lav.lib(utils.o) : error LNK2019: 无法解析的外部符号 __imp__getaddrinfo@16,该符号在函数 _ff_url_join 中被引用 1&avformat-lav.lib(rtsp.o) : error LNK2001: 无法解析的外部符号
在源文件(.cpp)中调用一个在头文件(.h)中声明但是没有实现(implement)的方法或符号是会无法编译,编译器报出“N2019 无法解析的符号在(...)”这样的错误
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";查看: 3497|回复: 7
关于绝对地址定义变量的方式和区别 与 我在移植uCosii的时候遇到的一个问题
主题帖子精华
中级会员, 积分 269, 距离下一级还需 231 积分
在线时间29 小时
为了学习uCosii,我做了一个原来写的普通裸机程序向uCosii移植的实验,系统能跑起来了,但是遇到一个语法问题:
程序中我定义了3个绝对地址变量:
原来的定义方式:
#define CBYTE(ADDR)
__attribute__((at(ADDR)))
volatile unsigned int&DataAddr0 CBYTE(0x);
volatile unsigned int DataAddr1 CBYTE(0x);
volatile unsigned int DataAddr2 CBYTE(0x);
采用上述方式定义变量,编译后出现以下编译错误:
..\Output\TEST.axf: Error: L6985E: Unable to automatically place AT section test.o(.ARM.__AT_0x) with required base address 0x. Please manually place in the scatter file using the --no_autoat option.&
..\Output\TEST.axf: Error: L6985E: Unable to automatically place AT section test.o(.ARM.__AT_0x) with required base address 0x. Please manually place in the scatter file using the --no_autoat option.&
..\Output\TEST.axf: Error: L6985E: Unable to automatically place AT section test.o(.ARM.__AT_0x) with required base address 0x. Please manually place in the scatter file using the --no_autoat option.&
Not enough information to list image symbols.
于是我采用了另一种方式来实现:
#define &DataAddr0
(*(volatile unsigned int *)0x)
#define &DataAddr1
(*(volatile unsigned int *)0x)
#define &DataAddr2
(*(volatile unsigned int *)0x)
编译可以通过,于是我产生了疑问:
1. 这两种定义绝对变量的方式有什么区别。
2. 如果不改变原有定义变量的方式,编译错误如何解决。
3. 为什么原来裸机程序采用第一种定义方式可以通过而加入了uCosii以后就不可以了。
以上问题请各位大神帮忙解决一下, 不胜感激。
volatile&unsigned&int&DataAddr0&CBYTE(0x);
&第一种方法,编译器帮助分配管理,可以确保这个空间是专用的,不会被其它变量占用;
define&&DataAddr0&(*(volatile&unsigned&int&*)0x)
&第二种方法,是程序员的个人行为,就是定义个指针指向这个址,不能确保这个空间没有被其它变量,或者堆栈之类的占用。
&这种方法读没问题,去写如果已经被 ...
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
volatile&unsigned&int&DataAddr0&CBYTE(0x);
&第一种方法,编译器帮助分配管理,可以确保这个空间是专用的,不会被其它变量占用;
define&&DataAddr0&(*(volatile&unsigned&int&*)0x)
&第二种方法,是程序员的个人行为,就是定义个指针指向这个址,不能确保这个空间没有被其它变量,或者堆栈之类的占用。
&这种方法读没问题,去写如果已经被其它变量占用的情况,有可能会引起程序功能出错。
总结:
&&&第二种方法只适合于定义操作SFR区.
&&&第一种方法适合操作内存。
声明:个人浅见,供参考,欢迎补充!
主题帖子精华
在线时间778 小时
定义方法与开发平台有关,不同平台则方法不同,其他不懂了。
主题帖子精华
中级会员, 积分 269, 距离下一级还需 231 积分
在线时间29 小时
回复【2楼】xuande:
---------------------------------
前后的开发工具都是keil5,第一种方式也是在网上查到的,所以不怎么了解这种定义方式……
主题帖子精华
中级会员, 积分 269, 距离下一级还需 231 积分
在线时间29 小时
帖子不要沉哇,求助大神啊!
主题帖子精华
金钱108410
在线时间728 小时
这个还真没遇到过,帮顶下。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子
主题帖子精华
中级会员, 积分 269, 距离下一级还需 231 积分
在线时间29 小时
回复【6楼】lemax:
---------------------------------
谢谢!受教了!
主题帖子精华
初级会员, 积分 113, 距离下一级还需 87 积分
在线时间0 小时
回复【3楼】shimengdacs:
---------------------------------
你好,请问怎么用&__attribute__进行函数地址的绑定,谢谢!
Powered by

我要回帖

更多关于 白玉堂吻展昭内壁 的文章

 

随机推荐