由于某种原因,用于从解压的 tar 包安装程序的命令make
和make install
不起作用。
该make
命令给出了错误:
make: *** No targets specified and no makefile found. Stop.
该make install
命令给出了错误:
make: *** No rule to make target `install'. Stop.
为什么这些命令没有执行?我应该怎么做才能解决这个问题?
答案1
我认为问题是你还没有依赖项对于有问题的程序,因为即使你已经运行,也只有名为和的./configure
文件,而应该有一个名为的文件,没有扩展名。makefile.in
makefile.am
Makefile
如果您./configure
在没有依赖项的情况下运行,它就不会生成 makefile,然后运行 make 会出现您收到的错误:
make: *** No targets specified and no makefile found. Stop.
因此,下载构建依赖项查看下载中包含的自述文件,了解你的程序的版本,或者如果程序源位于存储库中,并且你已启用源存储库,请运行
sudo apt-get build-dep program
获取依赖项后,./configure
再次运行,现在 make 和 make install 应该可以工作,因为会生成正确的文件Makefile
。
build-essential
(您可能还需要安装包含必要编译工具的软件包)
答案2
有时需要运行 autoreconf 来生成配置脚本,因此使用:
sudo apt install autoconf && autoreconf -ivf
答案3
也许当您构建时,您以用户身份执行此操作,然后您以 root 身份进行安装,但作为 root 您在另一个目录中。
在这种情况下的解决方案:以 root 身份将目录更改为您的构建目录,然后:make install
在 Debian Stretch 中为我工作。