本申请涉及计算机,更具体地说,涉及一种编译方法、装置、设备及可读存储介质。
背景技术:
1、伴随着智能网联汽车数量剧增,自动驾驶产品也不断升级,技术迭代上也从原有的关注功能开发到现在关注可靠性、低成本、工程化等技术点。在此过程中,智能驾驶控制器也从原本的高功耗无法满足车规要求的工控机,逐步向低功耗可满足车规要求的域控制器演进。
2、由于智能驾驶控制器的演进,代码的开发与编译工作也随之演进,从原有的一体化直接x86架构编译,逐步转化为x86架构之上交叉编译arm64架构程序,从而让程序能够正确运行于域控制器系统级芯片端。交叉编译器自身提供交叉编译所需的x86函数库,完整目标文件系统提供编译目标所依赖的arm64架构静态函数库和动态函数库,精简文件系统只提供arm64架构的动态函数库。当软件的开发方式为多人协同开发时,一旦目标文件系统中的控制参量、静态库、动态库出现错误或兼容性问题,会极为棘手,导致开发和调试的效率大幅度降低。且在开发时每个用户都需要额外的磁盘空间用于存放目标文件系统,容易造成磁盘空间浪费。
技术实现思路
1、本申请实施例提供了一种编译方法、装置、设备及可读存储介质,能够在多人协同开发软件时,保证每个人所使用的目标文件系统的一致性,从而提高开发和调试效率,并减少开发时对于磁盘空间的占用量。
2、有鉴于此,本申请实施例提供了一种编译方法,包括:
3、接收客户端发送的编译请求,所述编译请求包括源代码;
4、根据所述源代码确定目标文件系统,所述目标文件系统中存储有编译所述源代码所需的库文件;
5、将所述目标文件系统从局域网服务器缓存至所述客户端,以便于所述客户端调用所述目标文件系统对所述源代码进行编译,得到目标程序。
6、可选地,所述将所述目标文件系统从所述局域网服务器缓存至所述客户端,包括:
7、向所述局域网服务器发送挂载请求,所述挂载请求包括所述目标文件系统的标识信息;
8、接收所述局域网服务器发送的所述目标文件系统;
9、将所述目标文件系统发送至所述客户端。
10、可选地,所述编译请求还包括所述客户端的身份信息;在所述将所述目标文件系统从所述局域网服务器缓存至所述客户端之前,所述方法还包括:
11、根据所述身份信息确定所述客户端的权限;
12、判断所述客户端的权限与所述目标文件系统是否匹配;
13、若所述客户端的权限与所述目标文件系统匹配,执行将所述目标文件系统从所述局域网服务器缓存至所述客户端的步骤;
14、若所述客户端的权限与所述目标文件系统不匹配,向所述客户端返回编译失败消息。
15、可选地,所述方法还包括:
16、接收所述客户端发送的调试请求,所述调试请求包括目标程序;
17、将所述目标程序发送至芯片;
18、控制所述目标程序在所述芯片中运行,得到调试结果;
19、将所述调试结果返回给所述客户端。
20、可选地,所述方法还包括:
21、将所述目标文件系统从所述客户端中删除。
22、本申请实施例还提供了一种编译装置,包括:
23、接收单元,用于接收客户端发送的编译请求,所述编译请求包括源代码;
24、确定单元,用于根据所述源代码确定目标文件系统,所述目标文件系统中存储有编译所述源代码所需的库文件;
25、缓存单元,用于将所述目标文件系统从局域网服务器缓存至所述客户端,以便于所述客户端调用所述目标文件系统对所述源代码进行编译,得到目标程序。
26、可选地,所述缓存单元具体用于:
27、向所述局域网服务器发送挂载请求,所述挂载请求包括所述目标文件系统的标识信息;
28、接收所述局域网服务器发送的所述目标文件系统;
29、将所述目标文件系统发送至所述客户端。
30、可选地,所述编译请求还包括客户端的身份信息;所述装置还包括:
31、确定单元,还用于根据所述身份信息确定所述客户端的权限;
32、判断单元,用于判断所述客户端的权限与所述目标文件系统是否匹配;
33、执行单元,用于若所述客户端的权限与所述目标文件系统匹配,执行将所述目标文件系统从所述局域网服务器缓存至所述客户端的步骤;
34、返回单元,用于若所述客户端的权限与所述目标文件系统不匹配,向所述客户端返回编译失败消息。
35、本申请实施例还提供了一种计算机设备,包括:存储器、处理器以及总线系统;
36、其中,所述存储器用于存储程序;
37、所述处理器用于执行所述存储器中的程序,以实现上述所述的任意一种编译方法;
38、所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
39、本申请实施例还提供了一种计算机可读存储介质,存储有指令,当其在计算机上运行时,使得计算机执行如上述所述的任意一种编译方法。
40、本申请实施例提供了一种编译方法,包括:接收客户端发送的编译请求,所述编译请求包括源代码;根据所述源代码确定目标文件系统,所述目标文件系统中存储有编译所述源代码所需的库文件;将所述目标文件系统从所述局域网服务器缓存至所述客户端,以便于所述客户端调用所述目标文件系统对所述源代码进行编译,得到目标程序。可见,本申请能够通过预先将目标文件系统部署在局域网中,并在客户端需要对源代码进行编译时将目标文件系统从局域网服务器缓存至客户端,使得在多人协同开发软件时,能够保证每个人所使用的目标文件系统的一致性,并且能够使得客户端无需预先安装数据量庞大的目标文件系统,从而减少开发时对于磁盘空间的占用量。
1.一种编译方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述目标文件系统从所述局域网服务器缓存至所述客户端,包括:
3.根据权利要求1所述的方法,其特征在于,所述编译请求还包括所述客户端的身份信息;在所述将所述目标文件系统从所述局域网服务器缓存至所述客户端之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.一种编译装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述缓存单元具体用于:
8.根据权利要求6所述的装置,其特征在于,所述编译请求还包括客户端的身份信息;所述装置还包括:
9.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
10.一种计算机可读存储介质,其特征在于,存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1至5中任一项所述的方法。