ARM DS-5 Flex网络许可证多线程编译错误“Error: C9933W: Waiting for license...”
问题类别:ARM软件工具 > ARM DS-5 | 浏览次数:13718 |
发布日期:2013/8/16 13:55:08 | 文章来源:完美体育·(中国)手机网页版科技 |
回复日期:2020/12/18 10:22:23 |
环境说明
ARM DS-5 / ARM RVDS分析描述
这是因为我们在使用ARM编译器编译的时候,使用的是并行(多线程)编译,并行编译需要多个席位的许可证文件。如果我们只有一个席位的许可证,用并行编译方式来编译,就会出现“Error: C9933W: Waiting for license...”错误或者“Warning: C9933W: Waiting for license...”提示,导致代码编译不通过。
问题解答
方法一,不推荐
检查编译选项,是否有如下的一段:
make -j4
-j 后面的数字表示并行编译的数量,如上选项表示同时进行 4 个编译工作。
所以问题的解决办法就很明确了,将 -j 后面的数字改为 1,或者直接删除“-j4”这一个选项,就可以了,如果设置为单线程“1”后还是提示错误,请重启服务器再试。
说明:此办法因为仅用一个线程进行编译,所以会严重影响编译的速度。我们建议 RVDS 4.0 build 697 之前的版本和DS-5 旗舰版 5.20 之前的版本这样设置。其他版本,如RVDS 4.0 build 697及其之后版本、DS-5专业版、DS-5旗舰版5.20及其之后版本,请看方法二。
ARM官方说明:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15081.html
方法二,推荐!
默认情况下,C9933W: Waiting for license...只是警告级别,不会达到错误级别。如果出现error,我们可以通过以下步骤来解决:
1、修改编译脚本,将使用到 license 的地方的错误级别调整为警告级别,这不会影响编译结果。具体操作方法:在编译脚本中添加或修改“--diag_error”的值为“warning”:
--diag_error=warning
一般在形如“CFLAGS=----diag_error=...”的地方。
2、添加编译选项“--licretry --diag_suppress=9931,9933”到编译脚本中,包括汇编器、编译器、连接器和fromelf,如下:
ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933
ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933
ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933
ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933
ARM Compiler 6解决办法:/customerService/faq_list.asp?id=535
参考地址:
1、http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka16582.html
2、http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4095.html