我有以下生成文件:n?=10all:while[[$${n}-gt0]];do\echo$$n;\((n=n-1));\done当我尝试运行它时(make),运行失败并出现错误:make:***[all]Error1我无法理解失败的原因。任何帮助表示赞赏。 最佳答案 请注意:您导致您的makefile极其不可移植。Make始终使用/bin/sh调用配方。您编写的食谱实际上是一个bash脚本,不适用于POSIX/bin/sh;它只适用于将/bin/bash用作/bin/sh的系统。许多(大多数,取决于您如何计算)没有。你可以重写:n?
大多数使用Autotools的包都是用户级实用程序或至少足够高的级别完全在/usr下,或者足够低到完全在/usr下。我正在编写一个包,需要将一些文件安装到/bin,一些安装到/sbin,/usr/bin和/usr/sbin。它正在替换传统上位于这些位置下的几个现有二进制文件。它还需要在/lib/security中安装一个PAM模块(显然/usr/lib/security是行不通的)。现在的问题是:默认配置的前缀似乎是/usr/local。我可以在我的configure.ac中控制该默认值。至少GentooLinux的默认值是--prefix=/usr。这是个问题,因为它会覆盖我在con
大多数使用Autotools的包都是用户级实用程序或至少足够高的级别完全在/usr下,或者足够低到完全在/usr下。我正在编写一个包,需要将一些文件安装到/bin,一些安装到/sbin,/usr/bin和/usr/sbin。它正在替换传统上位于这些位置下的几个现有二进制文件。它还需要在/lib/security中安装一个PAM模块(显然/usr/lib/security是行不通的)。现在的问题是:默认配置的前缀似乎是/usr/local。我可以在我的configure.ac中控制该默认值。至少GentooLinux的默认值是--prefix=/usr。这是个问题,因为它会覆盖我在con
我刚开始学习Linux,我在为我的一个C++项目禁用GCC优化时遇到了一些问题。项目是用这样的makefile构建的...make-j10&&makeinstall我在各种网站上读到,禁用优化的命令类似于...gcc-O0有人可以帮我将其应用于makefile而不是单独的代码吗?我已经搜索了几个小时,却一无所获。 最佳答案 在一些标准的makefile设置中你可以make-j10-eCPPFLAGS=-O0但是makefile可能会使用其他替代变量或覆盖环境。您需要向我们展示Makefile才能提出修改建议
我刚开始学习Linux,我在为我的一个C++项目禁用GCC优化时遇到了一些问题。项目是用这样的makefile构建的...make-j10&&makeinstall我在各种网站上读到,禁用优化的命令类似于...gcc-O0有人可以帮我将其应用于makefile而不是单独的代码吗?我已经搜索了几个小时,却一无所获。 最佳答案 在一些标准的makefile设置中你可以make-j10-eCPPFLAGS=-O0但是makefile可能会使用其他替代变量或覆盖环境。您需要向我们展示Makefile才能提出修改建议
我如何将条件写入GNUmakeMakefile,它可以识别架构(在本例中为IntelOSX与Linux),以便我可以适本地设置标志,而不需要最终用户在运行make-f时指定Makefile?编辑我应该指定我从包含shell命令的ifeq语句中得到一个makefile错误,如果这个条件被放置在目标之外:'命令在第一个目标之前开始。停止。” 最佳答案 您应该能够检查其中一个uname变体的输出,然后使用makefile根据此选择不同的操作。运行manuname获取详细信息。就如何在GNUmake中使用它而言,您可以从shell函数中获取
我如何将条件写入GNUmakeMakefile,它可以识别架构(在本例中为IntelOSX与Linux),以便我可以适本地设置标志,而不需要最终用户在运行make-f时指定Makefile?编辑我应该指定我从包含shell命令的ifeq语句中得到一个makefile错误,如果这个条件被放置在目标之外:'命令在第一个目标之前开始。停止。” 最佳答案 您应该能够检查其中一个uname变体的输出,然后使用makefile根据此选择不同的操作。运行manuname获取详细信息。就如何在GNUmake中使用它而言,您可以从shell函数中获取
希望这是一个非常简单的问题。我有一个看起来像这样的makefile模式规则:%.so:%.f%.pyff2py-c-L${LAPACK_DIR}${GRASPLIBS}-m$*$^${SOURCES}--opt='-02'--f77flags='-fcray-pointer'>>silent.txt我希望makefile构建许多.so文件,因此我尝试通过这样做让它构建两个文件(radgrd_py.so和lodiso_py.so):radgrd_py.solodiso_py.so:%.so:%.f%.pyff2py-c-L${LAPACK_DIR}${GRASPLIBS}-m$*$^${
希望这是一个非常简单的问题。我有一个看起来像这样的makefile模式规则:%.so:%.f%.pyff2py-c-L${LAPACK_DIR}${GRASPLIBS}-m$*$^${SOURCES}--opt='-02'--f77flags='-fcray-pointer'>>silent.txt我希望makefile构建许多.so文件,因此我尝试通过这样做让它构建两个文件(radgrd_py.so和lodiso_py.so):radgrd_py.solodiso_py.so:%.so:%.f%.pyff2py-c-L${LAPACK_DIR}${GRASPLIBS}-m$*$^${
我的应用程序的makefile向CFLAGS添加了一些内容,如下所示:CFLAGS+=-Wall-std=gnu99然而,当我使用OpenEmbeddedBitBake构建应用程序时,BitBake显然忽略了makefile中的CFLAGS变量。我发现在应用程序的配方中添加以下行会导致在通过BitBake构建期间使用标志:EXTRA_OEMAKE+="CFLAGS='-Wall-std=gnu99'"为什么BitBake会像这样忽略makefile中的CFLAGS?此外,是否有比将上面的行添加到配方中更好的解决方案?我更希望只使用makefile的CFLAGS来消除冗余。