RPM打包时如何切换编译器工具链-创新互联
本文目的
网页标题:RPM打包时如何切换编译器工具链-创新互联
浏览地址:http://pwwzsj.com/article/hcpho.html
近年来,LLVM编译器项目凭借其良好的架构及友好的license,社区活跃度增加明显,成为与GCC项目并列的开源的编译器巨头之一。目前一些OS社区(如openEuler社区)的软件包仍默认使用GCC工具链编译构建,本篇文章调研在RPM打包时如何切换构建工具链。
创新互联从2013年开始,是专业互联网技术服务公司,拥有项目网站建设、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元丹江口做网站,已为上家服务,为丹江口各地企业和个人服务,联系电话:13518219792相关概念- RPM Package Manager (RPM) 是一个强大的命令行驱动的软件包管理工具,用来安装、卸载、校验、查询和更新 Linux 系统上的软件包。
- YUM:RPM包管理工具,相比RPM工具,YUM可以自动设备软件包依赖关系,自动安装相关软件包。
- rpmbuild:RPM软件包打包工具,根据SPEC文件引导创建rpm的二进制软件包和源码软件包。
- SPEC文件:spec文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作,以及软件包所要包含的文件列表等。
- Clang:LLVM编译器项目C/C++前端。
以名为test的软件包为例,假设此软件包默认用GCC构建,则可以通过如下步骤切换成Clang+LLVM。
- 在test.spec中,设置clang选项的默认值。
值得注意的是,bcond_with和bcond_without的意义如下:# Option to enable compiling with clang,default is gcc %bcond_with clang
【%bcond_with defaults value to 0】
【%bcond_without defaults value to 1】 - 设置spec文件内部全局变量toolchain。
%if %{with clang} %global toolchain clang %endif ```
- 根据是否打开clang编译,设置一些相应的动作,如依赖关系。
%if %{with clang} BuildRequires: clang llvm %endif
- 关键的一步,设置编译器工具链。通常情况下,软件包允许开发者自定义编译器工具链,如make工具通过CC、CXX等宏设置。
%if %{with clang} %global make_opts HOSTCC=clang CC=clang CXX=clang++ %endif
- 执行编译
make %{?make_opts}
- 软件包打包时增加–with选项,使能clang构建。
rpmbuild -ba --with=clang test.spec
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页标题:RPM打包时如何切换编译器工具链-创新互联
浏览地址:http://pwwzsj.com/article/hcpho.html