我编写了一个C ++程序(命令行,可移植代码),我试图在Windows版本的同时发布Linux版本。我写了一个makefile如下:
ayane: *.cpp *.h g++ -Wno-write-strings -oayane *.cpp到目前为止,直截了当;但是我理解通常采取第二步安装make。所以当我把make:target放在makefile中时......应该将什么命令与它相关联? (如果可能的话,我更喜欢它适用于所有Unix系统以及Linux。)
答案 0 :(得分:37)
一个不那么简单的安装程序会将多个内容复制到位,首先确保存在适当的路径(使用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的顶部。然后,用户可以通过在shell中设置环境变量来覆盖它。
您偶尔也会看到make install
构建清单以帮助卸载。清单甚至可以写成脚本来完成工作。
另一种方法是让make uninstall
查找make install
个地方的内容,如果存在则将其删除。
答案 1 :(得分:3)
在最简单的情况下,您只需将新创建的可执行文件复制到/usr/local/bin
路径中。当然,它通常比那更复杂。
请注意,大多数这些操作都需要特殊权限,这就是make install
通常使用sudo
调用的原因。
答案 2 :(得分:-7)
make install通常是将二进制文件“安装”到正确位置的步骤。
例如,在编译Vim时,make install可能会将其放在/ usr / local / bin
中并非所有Makefile都有make install