我已经编写了一个 C++ 程序(命令行、可移植代码),我正试图在发布 Windows 版本的同时发布 Linux 版本。我写了一个 makefile 如下:
ayane: *.cpp *.h g++ -Wno-write-strings -oayane *.cpp
到目前为止足够简单;但我知道通常有第二步,进行安装。因此,当我将 install: target 放入 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
中其他链接的 header
安装路径
INSTALL_PATH
是构建系统的输入,通常默认为 /usr/local
。这使您的用户可以灵活地在他们的 $HOME 下安装,而无需提升权限。
在最简单的情况下只需使用
INSTALL_PATH?=/usr/local
在 makefile 的顶部。然后用户可以通过在他们的 shell 中设置环境变量来覆盖它。
卸载
您偶尔还会看到构建 list 以帮助卸载的make install
。 list 甚至可以写成脚本来完成这项工作。
另一种方法是使用 make uninstall
来查找 make install
放置的内容,如果存在则将其删除。
关于linux - Linux/Unix 'make install' 应该由什么组成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528399/