How-to suppress error popup for inline messages __jspx页面弹出消息提示框

Error messages in ADF Faces are displayed in a DHTML popup dialog. 

 
To change this behavior so messages are displayed within the page, you add the af:messages tag to your
ADF Faces page and set its inline attribute to true.
After dragging the af:messages tag as a child to the af:document element, make sure you move it to
become the first child. Otherwise the message doesn't show on top of the page but somewhere below.
Set the Inline property to true to change the display behavior.
With the af:messages tag, the message display as part of the page, as shown in the image above. 
To write messages in JavaServer Faces, you use code similar the lines shown below
If the message you display is in response to an error caught during one of the early JSF request phases,
you should consider adding …
fctx.renderResponse();
… after setting the message to return to the page without updating the model.
For more information see the tag documentation for the af:messages tag
http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e12419/tagdoc/af_messages.html 
Build started: Project: STM32_Projects *** Using Compiler 'V6.7', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin' Build target 'Target 1' armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_gpio.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_dac.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_adc.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling misc.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_fsmc.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_dbgmcu.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_iwdg.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_exti.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_i2c.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_crc.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_dma.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_cec.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_flash.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_bkp.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_can.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_pwr.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_rcc.c... armclang: error: unknown argument: '--diag_suppress=Wunsafe-buffer-usage' compiling stm32f10x_rtc.c... armclang: error: u
最新发布
11-05
<think>我们注意到用户在编译STM32项目时使用ARM Compiler V6.7,遇到了错误:'unknown argument: --diag_suppress=Wunsafe-buffer-usage' 根据引用[2]的信息,类似错误的根本原因是编译器版本不兼容。旧工程可能使用了针对旧版本编译器的编译选项,而新版本的编译器不再支持这些选项。 具体到错误信息:`--diag_suppress=Wunsafe-buffer-usage`,这个选项用于抑制特定的警告信息(Wunsafe-buffer-usage)。ARM Compiler V6.7可能已经移除了这个选项,或者改变了警告抑制的语法。 根据引用[3]中的信息,当编译器升级后,会对待无法识别的命令行选项为错误。因此,我们需要移除或替换这个不再支持的选项。 解决方案步骤: 1. 在工程设置中查找是否有地方设置了`--diag_suppress=Wunsafe-buffer-usage`选项。通常在Keil MDK中,这些选项可能设置在以下位置: - Target Options -> C/C++ (ASM) -> Misc Controls(杂项控制) - 或者在某些预处理器宏中(Preprocessor Symbols) - 或者可能在分散加载文件(scatter file)或链接脚本中(但通常链接选项不会在这里) 2. 由于ARM Compiler V6.7可能已经不支持这个选项,我们可以尝试以下两种方法: a. 移除该选项:如果这个警告抑制不是必需的,可以直接移除。 b. 替换为等效的选项:查阅ARM Compiler V6.7的文档,看看是否有新的抑制警告的语法。 3. 关于`Wunsafe-buffer-usage`警告:这是一个关于不安全缓冲区使用的警告,可能是C/C++代码中指针使用的问题。如果我们无法抑制该警告,则需要检查代码并修复问题,或者考虑是否升级的编译器引入了新的警告。 4. 另外,注意错误信息中提到的选项格式:旧版本的编译器可能使用`--diag_suppress`,而新版本可能使用不同的语法(例如`-Wno-unsafe-buffer-usage`或者类似的选项)。需要查阅ARM Compiler V6.7的文档来确定。 但是,由于我们无法直接查阅文档,我们可以尝试: - 使用`-Wno-<warning>`的格式来抑制特定警告。例如,`-Wno-unsafe-buffer-usage`。 - 或者使用更通用的抑制警告选项:`-w`(抑制所有警告),但不推荐,因为会隐藏所有警告。 5. 如果上述方法无效,可能需要考虑降低编译器版本(安装旧版本编译器)或者修改代码以消除警告。 由于引用[3]提到Xcode编译器将无法识别的选项视为错误,同样ARM编译器也可能如此。因此,移除或替换无效选项是必须的。 具体在Keil MDK中的操作步骤: - 打开工程,进入“Options for Target” - 选择“C/C++”选项卡 - 在“Misc Controls”中查找是否有`--diag_suppress=Wunsafe-buffer-usage`,如果有则删除。 - 如果错误仍然存在,检查“Preprocessor Symbols”中是否定义了某个宏包含该选项(可能性较小)。 - 同时,我们可以在“Misc Controls”中尝试替换为新的选项,比如输入`-Wno-unsafe-buffer-usage`(如果编译器支持的话)。 如果不知道确切的替换选项,我们可以: - 在编译器的命令行中尝试使用`--help`或`-h`来查看支持的警告抑制选项(但Keil MDK中可能不方便直接运行)。 - 参考ARM Compiler 6的官方文档:https://developer.arm.com/documentation/100748/0617/ 根据ARM Compiler 6的文档,抑制警告的选项是使用`-Wno-<warning>`。例如,抑制unsafe-buffer-usage警告,应该使用`-Wno-unsafe-buffer-usage`。 因此,我们可以尝试在“Misc Controls”中替换原来的选项: 将 `--diag_suppress=Wunsafe-buffer-usage` 替换为 `-Wno-unsafe-buffer-usage` 注意:如果原来还有其他被抑制的警告,需要一并处理。例如,原来的选项可能是: --diag_suppress=550,177,513,167,186,66,1035,1295,1296 那么,对于每一个警告号,我们需要查找对应的警告名称,然后使用`-Wno-<warning-name>`来抑制。或者,如果这些警告号在新的编译器中有不同的处理方式,可能需要分别查阅。 但是,用户当前的错误只提到了`Wunsafe-buffer-usage`,因此我们只需要处理这个警告。 6. 如果替换后仍然报错,可能是该警告在新的编译器中已经被移除,或者警告名称发生了变化。此时,我们可以忽略这个特定的抑制,因为编译器已经不再产生该警告(或者换了一种警告方式)。 7. 另外,注意引用[4]提到的一个问题:Options for Target -> Debug -> Settings -> Flash Download,其中有一个“Reset and Run”选项。但这个设置与编译错误无关,而是与下载后是否自动运行有关,所以这里不需要修改。 总结:主要解决步骤是找到编译选项中设置了`--diag_suppress=Wunsafe-buffer-usage`的地方,并将其替换为`-Wno-unsafe-buffer-usage`或移除。 如果用户在工程设置中找不到这个选项,可能是由项目的宏定义或代码中的pragma指令添加的,需要检查代码中是否有类似: #pragma clang diagnostic ignored "-Wunsafe-buffer-usage" 或者 __attribute__((diag_suppress("Wunsafe-buffer-usage"))) 等,但通常这种选项是通过命令行传递的。 因此,我们优先检查IDE中的编译设置。 如果上述方法无法解决问题,可能需要考虑更新工程模板或检查是否有其他不兼容的选项。 由于用户之前使用的是旧版本编译器,升级到V6.7后,可能还有其他不兼容的地方,需要逐一解决。 因此,我们建议用户按照上述步骤操作,并注意其他可能的编译选项问题。 </think>### ARM Compiler V6.7编译错误解决方案 您在编译STM32项目时遇到的`unknown argument: --diag_suppress=Wunsafe-buffer-usage`错误,**核心原因是编译器版本升级导致的参数兼容性问题**。根据引用[2][^2]和引用[3][^3]的原理分析,以下是具体解决方案: #### 解决步骤: 1. **定位编译器选项设置位置**: - 在Keil MDK中打开工程 - 进入`Options for Target` → `C/C++`选项卡 - 检查以下两处设置: * `Misc Controls` 文本框 * `Preprocessor Symbols` 定义区域 2. **修改/移除无效参数**: ```diff - --diag_suppress=Wunsafe-buffer-usage + -Wno-unsafe-buffer-usage // 新编译器支持的等效参数 ``` 或直接删除该参数(如果不需要抑制此警告) 3. **验证其他兼容参数**: 检查是否存在其他旧版参数(如引用[1][^1]提到的`--gnu`),按相同原则替换为: ```diff - --gnu + -fgnu ``` 4. **批量替换方案**: 如果工程中有多处配置: - 使用文本编辑器全局搜索`.uvprojx`工程文件 - 替换所有`--diag_suppress=Wunsafe-buffer-usage`为`-Wno-unsafe-buffer-usage` #### 根本原因分析: 1. ARM Compiler V6.7采用基于Clang的新架构[^2][^3] 2. 新版编译器: - 将未知参数视为错误(旧版仅警告) - 使用`-Wno-<warning>`替代`--diag_suppress`语法 - 移除了部分遗留参数(如`--gnu`需改为`-fgnu`) #### 验证方法: ```plaintext # 在编译命令行中添加查看支持的选项 armclang --help | grep "unsafe-buffer" ``` 应返回类似输出:`-Wunsafe-buffer-usage`(确认新语法) > **提示**:升级MDK后,建议对所有旧工程执行`Project → Manage → Migrate to Version 6 Syntax`进行语法迁移[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值