C++ linux在部署环境中安装可执行文件

Posted

技术标签:

【中文标题】C++ linux在部署环境中安装可执行文件【英文标题】:C++ linux install executable file on deploy environment 【发布时间】:2016-05-24 10:29:45 【问题描述】:

大家好,我需要使用 make 文件或脚本部署 linux(centos) c++ 项目。通过一个 makefile 或脚本安装依赖项和项目可执行二进制文件。 我的依赖应用程序 libboost-devel、gcc-g++ 和 pcre。我的可执行二进制文件是 run_excute

【问题讨论】:

那么,你的问题是什么? @Karsten Koop 示例或要在我的项目的 linux 机器上部署的 makefile 或脚本示例。 @Karsten Koop 只需使用 make 文件或脚本安装我的项目二进制文件 run_excute。我可以这样做吗? 【参考方案1】:

当然 - 将以下命令放入文件中。在文件顶部添加:

#!/bin/bash

保存文件——假设你称之为安装;在命令行类型:

chmod +x ./install

然后构建和安装你的程序类型:

sudo ./install

或者,如果您手头有一些时间: http://www.rpm.org/max-rpm/ch-rpm-build.html


例如,fedora 的基本 rpm 构建过程是:

第 1 步:设置您的机器进行包装:

dnf install @development-tools fedora-packager rpmdevtools
rpmdev-setuptree

第 2 步:源代码和 Makefile 将这些放在 ~/rpmbuild/SOURCES

第 3 步:创建规范文件 在 ~/rpmbuild/SPECS 创建名为 myname.spec 的文件。它应该包含以下内容:

Summary:            My program description
Name:               myname
Version:            0.0.0
Release:            0
License:            GPLv2
Group:              Applications/Databases
Source:             https://xyz.tar.gz
URL:                http://myurl
BuildRequires:      libicu-devel
BuildRequires:      pcre-devel

%description
A couple of lines describing the package

%prep
%setup -q

%build
cd %myname/source
make %?_smp_mflags

%install
%make_install

%files
%_bindir/*

%changelog
* Tue Nov 10 2015 Yours Truly <me@somewhere.com> - 0.0.0-0
- Some change comments

第 4 步:创建源和二进制 rpm

cd ~/rpmbuild/SPECS
rpmbuild -ba myname.spec

第 5 步:使用 rpm

cd ~/rpmbuild/RPMS/x86_64
rpm -Uvh ./myprogram-version-release.a.whole.lot.of.stuff.rpm

【讨论】:

@myk 谢谢你的回复 构建 rpm 是个好点,你能告诉我一个简单的例子来构建 rpm 到我的 c++ 项目。请用简单的例子告诉我 @myk 如果我按照此步骤操作,它会为我的 c++ 项目创建安装吗? 是的:这些步骤将允许您创建一个文件名末尾带有 .rpm 的文件,这有点像 windows install.exe 文件,但 .rpm 文件适用于 RHEL 和Fedora Linux 发行版。所以你可以只分发 .rpm 文件。要解压(安装)您的程序,您可以使用 rpm -Uvh 命令。安装时无需编译程序,因为 .rpm 文件包含已编译的程序。【参考方案2】:

使用yum安装依赖,所以:

sudo yum install libboost-devel
sudo yum group install "Development Tools"
sudo yum install pcre-devel

要构建应用程序,请移至包含 makefile 的目录并执行以下操作:

make
sudo make install

终于运行应用了

./run_excute

如果你幸运的话

run_excute

会起作用的。

【讨论】:

感谢您的回复,这不是我的问题,我可以使用二进制文件 run_excute 为我的 c++ 项目制作安装程序

以上是关于C++ linux在部署环境中安装可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

编译出arm Android环境下的C++可执行文件

ubuntu中安装qgit工具-(转自Linux中国)

如何仅部署单个可执行文件

在 Linux 上运行 C++ 可执行文件

如何往linux中安装ab压力测试环境

如何在linux中安装jdk.rpm