当前位置:首页 » 编程软件 » 解决编译警告

解决编译警告

发布时间: 2022-09-02 01:01:52

㈠ 在keil编译时出现警告 什么意思 怎么解决

这是个警告,编译是没有问题的,能产生hex文件的,就是你有些函数或者变量声明或者定义了,但是没有使用!基本不影响使用的如果要不报这个警告的话就把没用到的都删除就好了

㈡ 如何消除间接呼叫 Method 在 Android Studio 中的编译警告

如果有使用过 DI (Dependency Injection) Framework 像是 butterknife,或是 Bus 一类的 Framework 像是 Otto 或 EventBus,一定会撰写出 Method 是没有被自己开发的源代码直接呼叫的。这时在 Android Studio 的即时编译检查就会出现警告:

Method ‘...’ is never used

就像这篇文章里提到,警告的出现会形成一定程度上的困扰,最好是能够消除掉,毕竟这是一个无法避免的写法,但又不应该被看成是个问题。

照“调整 Android Studio 编译检查规则”中的方法把检查规则整个取消掉,是个一劳永逸的方法。但是也把其可能的错误也抑制掉了,徒增程序质量上的风险,并非上策。

另外一个可行的选项是在方法上宣告 SuppressWarnings 的 Annotation,像是 @SuppressWarnings("unused")、@SuppressWarnings({"UnusedDeclaration"})、@SuppressWarnings({"UnusedParameters”})。跟前一个方案一样,应该显示的警告也同时被遮蔽掉了,不是最佳的方式。

所幸 Android Studio 也不是没有提供对策,在有问题的源代码上按下“alt+enter”,会跳出 Menu 并可以选择 Suppress for methods annotated by ‘...’ 项目。以 greenrobot 的 EventBus 为例,所有以 org.greenrobot.eventbus.Subscribe 为 Annotation 的 Method 都不会再显示警告,所以问题顺利地解决了。

以上的解决方法应该已经很多人都知道了,只是还有一个衍生的问题。如果使用的 Framework 提供的 Annotation 不只一个,还是得要一个一个地重覆相同的动作,不能一次搞定吗?

这时可以开启“调整 Android Studio 编译检查规则”中提到的 Inspections 选项画面,切换到“java->Declaration rendancy->Unused declaration”项目。画面右方的 Options Frame 最下方有一个【Configure annotations...】的按钮,点下去之后会再跳出另一个小视窗。接着就可以在视窗的最下方新增【Add Annotation Class】或【Add Annotations Pattern】,前一个是新增单一个 Class,另一个则是使用万用字符来增加一整组的 Class。

以上说明的这些资讯都被存在 .idea/misc.xml 的文件中,打开后会看到类似以下的内容:

<component name="EntryPointsManager">
<entry_points version="2.0" />
<list size="1">
<item index="0" class="java.lang.String" itemvalue="org.greenrobot.eventbus.Subscribe" />
</list>
</component>
如果你有莫名的控制欲,想要凡事都掌握在手中,可以直接修改文件的内容,也会达到一样的效果。

㈢ 用命令导入数据库时出现创建的对象带有编译警告,终止导入

编译警告一般是指存储过程,视图什么的脚本出现问题,不知道你的导入时基于用户的还是全库的,你需要查看出问题的OBJECT,看看是报的什么错,有可能是基于DB_LINK的错误,也有可能是调用了其他用户的表或视图,而你这一次导入的时候遗漏了

㈣ C语言编译警告,请问为什么会报警,怎么解决谢谢

有一个严重问题:n变量,所以int number[n];的声明是不可行的,[]中规定必须是常量,或常量表达式。其余就没有再往下看了……

㈤ C语言编译警告

void
main(void);函数被定义多次,这么明显的错误肯定是其他.c文件定义了main函数了
另外你的这种写法完全不符合c99啊
void
main(void)
应该写成
int
main(void);或者
int
main(char
*argc,char*
argv[])

㈥ quartus II 全编译出现严重警告

quartus II 全编译出现严重警告按以下方式解决:

首先看命令 derive_clock_uncertainty 的帮助,再根据自己的问题在*.sdc文件中加入

set_clock_uncertainty-setup -rise_from Clock -rise_to Clock 0.150

set_clock_uncertainty-hold -rise_from Clock -rise_to Clock 0.150

保存,重新编译。严重警告就消失了。

㈦ C语言:codeblocks编译警告,求解决!!!

去掉p=search(&stu,k);中的&。

㈧ 怎样消除编译器关于 C++11 的警告

1. 预处理首先源代码文件(.c/.cpp)和相关头文件(.h/.hpp)被预处理器cpp预编译成.i文件(C++为.ii)。预处理命令为:gcc –E hello.c –o hello.i预编译过程主要处理那些源代码中以#开始的预编译指令,主要处理规则如下:u 将所有的#define删除,并且展开所有的宏定义;u 处理所有条件编译指令,如#if,#ifdef等;u 处理#include预编译指令,将被包含的文件插入到该预编译指令的位置。该过程递归进行,及被包含的文件可能还包含其他文件。u 删除所有的注释//和 /**/;u 添加行号和文件标识,如#2 “hello.c” 2,以便于编译时编译器产生调试用的行号信息及用于编译时产生编译错误或警告时能够显示行号信息;u 保留所有的#pragma编译器指令,因为编译器须要使用它们。2. 编译编译过程就是把预处理完的文件进行一系列词法分析,语法分析,语义分析及优化后生成相应的汇编代码文件(.s)。编译的命令为:gcc –S hello.i –o hello.s或者从源文件直接输出汇编代码文件:gcc –S hello.c –o hello.s现在版本的GCC把预编译和编译两个步骤合并成一个步骤,由程序cc1来完成(C++为cc1plus)。3. 汇编汇编就是将汇编代码转变成机器可以执行的命令,生成目标文件(.o),汇编器as根据汇编指令和机器指令的对照表一一翻译即可完成。汇编的命令为:gcc –c hello.s –o hello.o或者从源文件直接输出目标文件:gcc –c hello.c –o hello.o4. 链接链接就是链接器ld将各个目标文件组装在一起,解决符号依赖,库依赖关系,并生成可执行文件。链接的命令为:ld –static crt1.o crti.o crtbeginT.o hello.o –start-group –lgcc –lgcc_eh –lc-end-group crtend.o crtn.o一般我们使用一条命令就可以完成上述4个步骤:gcc hello.c实际上gcc只是一些其它程序的包装,它会根据不同参数去调用预编译编译程序cc1、汇编器as、链接器ld。

㈨ 请教gcc编译下的几个警告该怎么去除

C 语言源程序中的错误分为几类,其中有:必须要修改的错误(例如:语法错误),这类错误如果不进行修改,那么源程序就无法编译通过和运行;另外还有就是:警告错误(例如:对某个变量没有赋初值就使用它),该类错误就是:编译器能够让你的源程序通过,但是你在运行源程序时,得到的运行结果却未必是正确的(例如:编写一个累加器的程序,如果不对总和进行清零,那么每运行一次,结果可能就会是随机的)。所以说,如果 gcc 编译器下提出了警告错误,你就必须要仔细阅读源程序,找出其相对应的BUG来,这样才能够确保你的程序运行结果是正确的。

㈩ iOS 编译报错怎么办

1.编译iPad真机时,选择了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad.

若编译出现如下错误:

Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

则修改 GCC4.2CodeGeneral区域中的ComplieForThumb为非选中.

已经有了开发者证书及私钥后,可直接在越狱的手机上调试.

2. 编译链接时, "_OBJC_CLASS_$_xxx", referenced from:可能需要重新建立某个类的文件.

或者:选择项目名,在detail列表中的target列(显示为一个又圆圈),把这个文件的复选选中,或者再次选中.以把它加入到这个target里面来.

3.在sdk4.0及以上使用RegexKitLite报'captureCount' was not declared in this scope错误,是在非.m文件中使用了它的原因.

4.there is no sdk with the name or path.

从网上down的开源代码,结果运行的时候常出现这样的错,并且在deployment中没有iosdeploymenttarget选项.

尝试 Project/Edit Active Target/ 及 Set Active SDK菜单项,来回切换一下Active Configuration。

5. EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION错误,意味着这个app有内存管理的问题,一般是因为访问野指针对象造成的。

一个和内存相关的崩溃一般很难定位到源代码,因为这个恶魔可能很早就在程序中做了坏事了。假如一段有问题的代码混乱了内存结构,这样产生的蝴蝶效应可能会在之后很久才表现出来,并且总在不同的地方。所以,若有指针类型出现了不可能的变化,很可能就是因为内存结构被野指针调用混乱了。

修复一些警告后,可能就能预防一些内存错误。警告在左边靠近行号的黄色三角指出一个编译警告,你点击那个黄色的三角形,xcode可能会弹出一个“Fix-it”的建议。

EXC_BAD_ACCESS崩溃不像SIGABRT,将不会得到很明朗的错误消息。然而可以使用一个让人看到曙光的调试工具:Zombies!死亡对象工具。打开这个项目的scheme editor,选择Run 选项,然后选择Diagnosics标签。勾上Enable Zombie Objects选项。当这个zombie工具被启用之后,即使这个对象被释放了,这个对象的内存也不会被清理。所以,那块内存将会被标记为“长生不死的”。假如你试着之后又去使用这块内存,这个app能够意识到你的错误操作,并且app将会抛出“messagesent to daellocated instance”错误并且终止运行。

在工程中加入NSZombieEnabled 环境变量,并设为启用,则在 EXC_BAD_ACCESS 发生时,XCode 的 Console 会打印出问题描述中,设置方法:双击Executables 下的 可执行模组,在弹出窗口中,Variables to be set in the environment,添加 NSZombieEnabled,并设定为 YES,点击选中复选框启用此变量。

可以再加入 MallocStackLogging 来启用malloc记录,以获得更多的提示来帮助定位问题。

在gdb窗口输入 (格式: shell malloc_history <id> <address>) shellmalloc_history1436 0x5f7fcf0, 也可以在终端中去运行 就要去掉以上的shell 指令 如 malloc_history <id> <address>

应该仅当需要调试内存时,才设置上述环境变量。

注意一点:不应该一直启用zombie objects。因为这个工具将永远不会释放内存,只是简单标记一下这个内存是不死的,你最终将会在某个时候耗尽所有的内存,因为所有分配过的内存都不会得到重用。因此应该在排查内存相关的错误的时候才开启zombie objects,其他时候应该关闭它。

在xcode4中,To edit environment variables, go to Menu Proct / Edit Scheme…, select the desired configuration (you probably want 'Run') from the left sidebar first and then click on the Arguments tab. Environment variables are configurable there.

6.运行一个IPhone程序时,弹出窗口说“程序运行失败,预置描述文件已过期” 。 解决办法是,在Xcode中, window-> Orgnazier -> 你的iphone ->删除带有红*的该程序之前的Profile 。 然后从Xcode运行该程序.

7.真机编译时报 Code Sign error: The identity doesn't match any valid certificate/private key pair in the default keychain

修改工程和Targets的get infouild 中的code signing identity为空

8.调试打印

CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like: {value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}

If NSLog() is printing something out as an NSCFType, try CFShow().

9. 编译时报 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1,修改C/C++ Compiler Version为gcc4.2

10.this class is not key value coding-compliant for the key viewController

可能在创建了一个基于view的工程,而后把生成的viewcontroller删除了,但是在.xib中还有对它的引用,在IB中直接用delete键删除掉它就行了。

11.这台电脑上已经存在一个名为“embedded.mobileprovision”的预置文件,您是否要替换么?

http://blog.sina.com.cn/s/blog_6907b67f0100o2vw.html

12.真机调试时报failed to upload *.app

http://hi..com/%CB%E6%B7%E7_1989/blog/item/9649f49f805f05aec8eaf466.html

http://www.shouyanwang.org/thread-462-1-1.html

13.记的release时,先置delegate为nil。

一个节点不应该保留任何对不属于它的节点的引用。

14.模拟器

将xcode升级到4.3.1以后发现,ipad的模拟器,没有Home键了。Command+Shift+H就可以实现类似点击Home键的效果了。

    热点内容
    java获取地址 发布:2025-03-14 21:44:30 浏览:730
    app后台源码 发布:2025-03-14 21:33:34 浏览:735
    cftp目录是否存在 发布:2025-03-14 21:32:45 浏览:98
    我的世界斗罗服务器电脑网易版 发布:2025-03-14 21:28:33 浏览:525
    java是甲骨文 发布:2025-03-14 21:21:38 浏览:127
    柱顶要加密 发布:2025-03-14 21:16:11 浏览:854
    魔声蓝牙耳机怎么在安卓显示电量 发布:2025-03-14 21:15:32 浏览:619
    智慧易店服务器地址是啥 发布:2025-03-14 20:57:49 浏览:887
    小米ID密码忘记了有什么危害 发布:2025-03-14 20:45:28 浏览:611
    大麦路由器怎么改密码 发布:2025-03-14 20:35:42 浏览:88