当前位置: 首页 > 面试题库 >

Linux / Unix的“ make install”应该包括什么?

成浩漫
2023-03-14
问题内容

我已经编写了一个C ++程序(命令行,可移植代码),并且试图与Windows版本同时发布Linux版本。我写了一个makefile,如下所示:

y:* .cpp * .h
    g ++ -Wno-write-strings -oayane * .cpp

到目前为止很简单
但据我了解,通常需要执行第二步,即进行安装。因此,当我将install:目标放入makefile中时,应该将哪个命令与之关联?(如果可能的话,我希望它可以在所有Unix系统以及Linux上运行。)


问题答案:

安装

比较简单的安装程序将复制一些内容到位,首先确保存在适当的路径(使用mkdir -p或类似的路径)。通常是这样的:

  • 可执行文件进入 $INSTALL_PATH/bin
  • 为外部使用而构建的任何库都可以进入$INSTALL_PATH/lib$INSTALL_PATH/lib/yourappname
  • 手册页$INSTALL_PATH/share/man/man1以及其他适当的章节
  • 其他文档 $INSTALL_PATH/share/yourappname
  • 默认配置文件进入 $INSTALL_PATH/etc/yourappname
  • 其他链接的标题反对进 $INSTALL_PATH/include/yourappname

安装路径

INSTALL_PATH是输入到构建系统,并且通常默认为/usr/local。这使您的用户可以灵活地在$ HOME下进行安装,而无需提升权限。

在最简单的情况下,只需使用

INSTALL_PATH?=/usr/local

在makefile的顶部。然后,用户可以通过在外壳程序中设置环境变量来覆盖它。

解除安装

您还偶尔会看到make installs在构建清单以帮助卸载。清单甚至可以编写为脚本来完成工作。

另一种方法是让a make uninstall查找所放置的事物make install,如果存在则将其删除。



 类似资料:
  • 编辑:意外复制粘贴的一行两次。 我正在使用增强和普通的C应用编程接口的组合制作一个C Python扩展,但是我不能编译它。我读过以下文档: boost提供的文档。组织 来自python wiki的文档 C介质的Python绑定 以下是cpp文件中的代码: 生成文件: 错误输出: 我想我已经包含了所有的头文件,但是我不知道为什么它说它不在这个范围内声明。任何帮助都将非常感激

  • 我创建了一个类(正如书中所说)来保存从键盘输入的一个人的姓名和姓氏,然后还有另一个类,它将一个人的国家代码、区号和号码封装为字符串 Person将用作Hashmap中的键 Class封装了和。许多对象组成了一个表示电话簿的HashMap。 实现了

  • 本文向大家介绍测试计划工作的目的是什么?测试计划文档的内容应该包括什么?相关面试题,主要包含被问及测试计划工作的目的是什么?测试计划文档的内容应该包括什么?时的应答技巧和注意事项,需要的朋友参考一下 1)借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 测试背景 测试目标 测试范围 测试

  • 我是一个Android开发的新手。什么是android.jar?我指的是https://developer.android.com/guide/platform/?nav=true并试图理解它适合哪个层。我听到了相互矛盾的意见,现在真的很困惑,考虑到我在Android方面的有限知识。谢谢!

  • 我开始和春云一起工作。 我使用spring-cloud-gateway,spring-cloud-config,eureka 用于bootstrap.properties中的发现服务(eureka) 在/home/cloud/config中 网关-service-local.properties 据我所知,Bootstrap.properties加载是为了能够设置应用程序,它从服务器获取配置并在本

  • 问题内容: 这似乎很明显,但是我发现自己对于何时使用花括号在ES6中导入单个模块感到有些困惑。例如,在我正在从事的React- Native项目中,我具有以下文件及其内容: initialState.js 在TodoReducer.js中,我必须不带花括号将其导入: 如果将花括号括起来,则以下代码行将出现以下错误: 无法读取未定义的属性待办事项 TodoReducer.js: 带有花括号的组件也发