繁体   English   中英

如何使用Makefile和rpmbuild为cpp项目创建rpm?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM