[英]How to create a rpm for cpp project using Makefile and rpmbuild?
我试图在使用RPM从Makefile构建的特定位置安装可执行文件。
我在c中使用示例hello项目尝试了此链接 。 我能够做到,但是当我在Cpp中尝试时。 我收到以下错误。
生成文件
CC = g++
CFLAGS = -Wall -g -Wno-sign-compare -Wno-unused-variable -Wno-unused-but-set-variable -Wno-conversion-null -Wno-narrowing -Wno-parentheses
INCLUDES = -I. -I/usr/include
LFLAGS = -L../lib
LIBS =
SRCS = $(wildcard ./*.cpp)
OBJS = $(SRCS:.cpp=.o)
MAIN = calc
.PHONY: depend clean
all: $(MAIN)
@echo application is built successfully
$(MAIN): $(OBJS)
$(CC) $(CFLAGS) $(INCLUDES) -o $(MAIN) $(OBJS) $(LFLAGS) $(LIBS)
.cpp.o:
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
clean:
find . -type f -name "*.o" -exec rm {} \;
$(RM) *.o *~ $(MAIN)
depend: $(SRCS)
makedepend $(INCLUDES) $^
install:
mkdir -p $(DESTDIR)/usr/bin
install -m 755 calc $(DESTDIR)/usr/bin/calc
规格文件
Version: 1.0
Release: 1%{?dist}
Summary: Management software
License: GPLv3+
Source: management.tar.gz
#Patch0: output.patch
BuildRequires: gcc
BuildRequires: make
#Requires:
%description
Patching new releases with Management
%prep
%setup -q
#%patch0
%build
make %{?_smp_mflags}
%install
%make_install
#install -m 755 -d /home/bhargavd/installed/compiled
%files
#/home/bhargavd/dev/Management
#/home/bhargavd/installed/compiled/management
%{_bindir}/%{name}
%changelog
错误
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.iC01UJ
+ umask 022
+ cd /home/bhargavd/rpmbuild/BUILD
+ cd /home/bhargavd/rpmbuild/BUILD
+ rm -rf management-1.0
+ /usr/bin/gzip -dc /home/bhargavd/rpmbuild/SOURCES/management.tar.gz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd management-1.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.LX04Qe
+ umask 022
+ cd /home/bhargavd/rpmbuild/BUILD
+ cd management-1.0
+ make -j4
g++ -Wall -g -Wno-sign-compare -Wno-unused-variable -Wno-unused-but-set-variable -Wno-conversion-null -Wno-narrowing -Wno-parentheses -I. -I/usr/include -c Main.cpp -o Main.o
g++ -Wall -g -Wno-sign-compare -Wno-unused-variable -Wno-unused-but-set-variable -Wno-conversion-null -Wno-narrowing -Wno-parentheses -I. -I/usr/include -c Addition.cpp -o Addition.o
g++ -Wall -g -Wno-sign-compare -Wno-unused-variable -Wno-unused-but-set-variable -Wno-conversion-null -Wno-narrowing -Wno-parentheses -I. -I/usr/include -o calc ./Main.o ./Addition.o -L../ lib
application is built successfully
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.Yyp4bK
+ umask 022
+ cd /home/bhargavd/rpmbuild/BUILD
+ '[' /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64 '!=' / ']'
+ rm -rf /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64
++ dirname /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64
+ mkdir -p /home/bhargavd/rpmbuild/BUILDROOT
+ mkdir /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64
+ cd management-1.0
+ /usr/bin/make install DESTDIR=/home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64
mkdir -p /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64/usr/bin
install -m 755 calc /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64/usr/bin/calc
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 /home/bhargavd/rpmbuild/BUILD/management-1.0
extracting debug info from /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64/usr/bin/calc
dwz: Too few files for multifile optimization
/usr/lib/rpm/sepdebugcrcfix: Updated 1 CRC32s, 0 CRC32s did match.
1 block
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: management-1.0-1.el7.x86_64
error: File not found: /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64/usr/bin/management
RPM build errors:
File not found: /home/bhargavd/rpmbuild/BUILDROOT/management-1.0-1.el7.x86_64/usr/bin/management
我如何构建可以在特定位置安装可执行文件的RPM文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.