如果我们只有一个席位的许可证,用并行编译方式来编译,就会出现“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官方说明:
方法二,推荐!
默认情况下,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解决办法:http://www.myir-tech.com/faq_list.asp?id=535
参考地址:
1、
2、