我编写了一个C++程序(命令行,可移植代码),我试图在Windows版本的同时发布Linux版本.我写了一个makefile如下:
ayane: *.cpp *.h g++ -Wno-write-strings -oayane *.cpp
到目前为止已经足够直截了当; 但是我理解通常采取第二步安装make.所以当我把make:target放在makefile中时......应该将什么命令与它相关联?(如果可能的话,我更喜欢它适用于所有Unix系统以及Linux.)
一个不那么简单的安装程序会将几个东西复制到位,首先确保存在适当的路径(使用mkdir -p
或类似).通常是这样的:
可执行文件进入 $INSTALL_PATH/bin
任何为外部消费而建的图书馆都会进入$INSTALL_PATH/lib
或$INSTALL_PATH/lib/yourappname
$INSTALL_PATH/share/man/man1
如果合适,man页面会进入,可能还有其他部分
其他文档进入 $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
构建清单以帮助卸载的s.清单甚至可以写成脚本来完成工作.
另一种方法就是有一个make uninstall
查找事物make install
位置的方法,如果它们存在则删除它们.