标签: makefile

调试GNU make

是否有命令行方式make来找出目标的哪些先决条件未更新?

debugging makefile gnu-make

71
推荐指数
5
解决办法
8万
查看次数

"多个目标模式"Makefile错误

我的makefile因错误而失败:

Makefile:34: *** multiple target patterns.  Stop.
Run Code Online (Sandbox Code Playgroud)

它究竟意味着什么,我该如何解决这个问题呢?

(GNU制作手册,由Captain Obvious编写,没有帮助).


找到了.我有形式的规则:

$(FOO): bar
Run Code Online (Sandbox Code Playgroud)

FOO从shell命令设置的地方,用包含冒号的错误消息污染了它.

makefile

71
推荐指数
2
解决办法
10万
查看次数

从Makefile变量中删除项目?

我有一个makefile,其中包含其他几个makefile,而这些makefile又添加了一个这样的变量:

VAR := Something SomethingElse
VAR += SomeOtherThing

(...)
Run Code Online (Sandbox Code Playgroud)

现在我希望SomethingElseVAR变量中删除.我该怎么做(...)才能做到这一点?

我正在使用GNU Make,GNU Make特定解决方案也没问题.

variables makefile gnu-make

71
推荐指数
2
解决办法
4万
查看次数

如何添加include和lib路径来配置/ make循环?

我需要一个地方在linux盒子里安装库我没有su访问权限.我正在使用〜/ local [/ bin,/ lib,/ include],但我不知道如何告诉./configure在那里寻找库(特别是,我正在尝试编译emacs,这需要libgif ,这不是我的发行版).

我尝试添加

export PATH=$PATH:~/local/bin
export LD_LIBRARY_PATH=~/local/lib
export C_INCLUDE_PATH=~/local/include
export CPLUS_INCLUDE_PATH=~/local/include
Run Code Online (Sandbox Code Playgroud)

到.bashrc但它似乎不起作用.

bash linker autoconf makefile configure

71
推荐指数
3
解决办法
18万
查看次数

更改npm脚本的工作目录

问:是否可以更改npm运行脚本的上下文?

我想要的是以下内容:

"scripts": {
   "test": "gulp mocha",
   "pre-install": "./deps/2.7/cpython/configure --prefix=$(pwd)/build --exec-prefix=$(pwd)/build && make -C deps/2.7/cpython && make -C deps/2.7/cpython install",
   "install": "node-gyp rebuild"
},
Run Code Online (Sandbox Code Playgroud)

显然cd deps/2.7/cpython/ && ./configure可以在类UNIX系统上工作,但不能在Windows上工作.

原因:问题的根源是,configurepython repo 的命令将文件输出到调用它的目录中.然而,这些文件与repo的目录中的文件相关make并且make install查找这些文件.

在这种情况下,我无法改变,Makefile因为Python的构建过程是可以理解的复杂.

替代方案:替代方案可能是编写一些install.js并使用节点的OS独立API和一些child_process.exec(),我可能会这样做.但是,不离开npm会非常好.

makefile node.js npm package.json

70
推荐指数
2
解决办法
4万
查看次数

未找到Cygwin Make bash命令

我在Windows 7 64位上安装了所有软件包的cygwin.由于某种原因,make命令给我一个错误:bash make:command not found.我检查并在我的bin文件夹中,没有make.exe.谁可以帮我这个事?我真的需要在CYGWIN工作.我不想去Windows XP.

c++ cygwin command makefile

69
推荐指数
6
解决办法
13万
查看次数

GNU可以使用空格来处理文件名吗?

我有一个包含多个文件的目录,其中一些文件的名称中有空格:

Test workspace/
Another directory/
file1.ext
file2.ext
demo 2012-03-23.odp
Run Code Online (Sandbox Code Playgroud)

$(wildcard)在这个目录上使用GNU的命令,然后使用遍历结果$(foreach),打印出所有内容.这是代码:

FOO := $(wildcard *)
$(info FOO = $(FOO))
$(foreach PLACE,$(FOO),$(info PLACE = $(PLACE)))
Run Code Online (Sandbox Code Playgroud)

以下是我希望看到的内容:

Test workspace
Another directory
file1.ext
file2.ext
demo 2012-03-23.odp
Run Code Online (Sandbox Code Playgroud)

这是我真正得到的:

Test
workspace
Another
directory
file1.ext
file2.ext
demo
2012-03-23.odp
Run Code Online (Sandbox Code Playgroud)

后者对我来说显然毫无用处.该文档$(wildcard)它返回一个"名字的空格分隔的名单",但完全平整出国家不承认这引起了巨大的问题.也不对文件进行$(foreach).

有可能解决这个问题吗?如果是这样,怎么样?重命名每个文件和目录以删除空格不是一个选项.

shell gnu makefile

69
推荐指数
4
解决办法
3万
查看次数

什么是?=在Makefile中

KDIR ?= $(shell uname -r)
Run Code Online (Sandbox Code Playgroud)

是什么意思?=

我已经明白之间的差别:=,+==从堆栈溢出可用,但无法另一个线程来寻找解释?=.

linux makefile linux-kernel

69
推荐指数
2
解决办法
3万
查看次数

如何创建配置脚本?

这可能听起来像一个非常通用的问题,但在这里.

我有一个要求,以创建我的应用程序配置脚本,将生成的这种配置的结果makefile(基本configure,make,make install).我的问题是,我从哪里开始构建这个?我可以效仿一个例子吗?

linux bash makefile configure

67
推荐指数
4
解决办法
5万
查看次数

如何克服"'aclocal-1.15'在您的系统上缺失"警告?

我试图在github上运行一个c ++程序.(可从以下链接获得https://github.com/mortehu/text-classifier)

我有一台Mac,我正试图在终端上运行它.我想我已经下载了autoconf和automake,但我不确定.要运行该程序,我将转到终端中正确的文件夹,然后运行

./configure && make 
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

警告:系统中缺少"aclocal-1.15".如果您修改'configure.ac'或'configure.ac'或'configure.ac'包含的m4文件,您应该只需要它.'aclocal'程序是GNU Automake软件包的一部分:http: //www.gnu.org/software/automake 它还需要GNU Autoconf,GNU m4和Perl才能运行:http : //www.gnu.org/software/autoconf http://www.gnu.org/software/m4/ http://www.perl.org/ make:***[aclocal.m4]错误127

我有xcode和g ++以及运行c程序所需的所有东西,但很明显,我不知道我在做什么.

在上面的链接中运行程序最简单,最简单的方法是什么?我意识到它带有自述文件和示例用法,但我无法让它工作.

c++ automake makefile github

67
推荐指数
7
解决办法
9万
查看次数