标签: makefile

安装,但不是默认目录?

我想运行'make install'所以我拥有我需要的一切,但是我想把它安装在自己的文件夹中而不是系统的/ usr/bin等可能吗?即使它引用了/ usr/bin等中的工具?

linux gcc makefile autotools

129
推荐指数
5
解决办法
16万
查看次数

Makefile变量作为先决条件

在Makefile中,deploy配方需要设置一个环境变量ENV来正确执行自身,而其他人则不关心,例如:

ENV = 

.PHONY: deploy hello

deploy:
    rsync . $(ENV).example.com:/var/www/myapp/

hello:
    echo "I don't care about ENV, just saying hello!"
Run Code Online (Sandbox Code Playgroud)

如何确保设置此变量,例如:是否有办法将此makefile变量声明为部署配方的先决条件,例如:

deploy: make-sure-ENV-variable-is-set
Run Code Online (Sandbox Code Playgroud)

谢谢.

makefile

127
推荐指数
8
解决办法
7万
查看次数

Make:命令失败后如何继续?

该命令$ make all会产生错误,rm: cannot remove '.lambda': No such file or directory因此它会停止.我希望它忽略rm-not-found-errors.我怎么强迫?

Makefile文件

all:
        make clean
        make .lambda
        make .lambda_t
        make .activity
        make .activity_t_lambda
clean:
        rm .lambda .lambda_t .activity .activity_t_lambda

.lambda:
        awk '{printf "%.4f \n", log(2)/log(2.71828183)/$$1}' t_year > .lambda

.lambda_t:
        paste .lambda t_year > .lambda_t

.activity:
        awk '{printf "%.4f \n", $$1*2.71828183^(-$$1*$$2)}' .lambda_t > .activity

.activity_t_lambda:
        paste .activity t_year .lambda  | sed -e 's@\t@\t\&\t@g' -e 's@$$@\t\\\\@g' | tee > .activity_t_lambda > ../RESULTS/currentActivity.tex
Run Code Online (Sandbox Code Playgroud)

makefile

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

Makefile与源文件在不同的目录中

我有一个目录结构如下的项目:

                         $projectroot
                              |
              +---------------+----------------+
              |               |                |
            part1/          part2/           part3/
              |               |                |
       +------+-----+     +---+----+       +---+-----+
       |      |     |     |        |       |         |
     data/   src/  inc/  src/     inc/   src/       inc/
Run Code Online (Sandbox Code Playgroud)

我应该如何编写部分/ src(或其他任何地方)的makefile,它可以补充/链接部分?/ src中的c/c ++源文件?

我可以做一些像-I $ projectroot/part1/src -I $ projectroot/part1/inc -I $ projectroot/part2/src ...

如果这样可行,是否有更简单的方法.我看过每个相应部分都有makefile的项目?文件夹.[在这篇文章中我使用了像bash语法中的问号]

linux makefile

123
推荐指数
7
解决办法
21万
查看次数

如何在Linux上为gcc创建一个简单的makefile?

我有三个文件:program.c,program.hheaders.h.

program.c包括program.hheaders.h.

我需要使用gcc编译器在Linux上编译它.我不知道该怎么做.Netbeans为我创建了一个,但它是空的.

c gcc makefile

123
推荐指数
4
解决办法
23万
查看次数

gmake和make有什么区别?

我想了解'gmake'和'make'之间的区别?

在我的linux盒子上,它们完全相同:

% gmake --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

% make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Run Code Online (Sandbox Code Playgroud)

我猜这在所有平台上都不一样?是否有充分的理由使用其中一个?
为什么有这两个名字有一些历史意义吗?

makefile build gnu-make

121
推荐指数
2
解决办法
7万
查看次数

抑制makefile中命令调用的回显?

我编写了一个程序,用于将其输出打印到stdout的赋值.赋值规范要求创建一个Makefile,在调用make run > outputFile时应运行程序并将输出写入文件,该文件的SHA1指纹与规范中给出的指纹相同.

我的问题是我的makefile:

...
run:
     java myprogram
Run Code Online (Sandbox Code Playgroud)

还会将运行我的程序的命令(例如java myprogram)输出到输出文件,这样我的文件就会包含这个额外的行,导致指纹错误.

有没有办法在没有命令调用回显到命令行的情况下执行命令?

unix linux posix makefile

121
推荐指数
4
解决办法
6万
查看次数

如何检查Makefile中是否存在文件,以便删除它?

在我的干净部分,我Makefile试图在永久删除之前检查文件是否存在.我使用此代码但收到错误.

它出什么问题了?

 if [ -a myApp ]
 then
     rm myApp
 fi
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息

 if [ -a myApp ]
 /bin/sh: Syntax error: end of file unexpected (expecting "then")
 make: *** [clean] Error 2
Run Code Online (Sandbox Code Playgroud)

makefile

119
推荐指数
9
解决办法
16万
查看次数

我可以在obj /中将src /中的所有.cpp文件编译为.o,然后在./中链接到二进制文件.

我的项目目录如下所示:

/project
    Makefile
    main
    /src
        main.cpp
        foo.cpp
        foo.h
        bar.cpp
        bar.h
    /obj
        main.o
        foo.o
        bar.o
Run Code Online (Sandbox Code Playgroud)

我想让makefile做的就是将.cpp文件/src夹中的所有文件编译到.o文件/obj夹中的文件中,然后将所有.o文件链接/obj到顶级文件夹中的输出二进制文件中/project.

我几乎没有Makefiles的经验,我不确定要搜索什么来实现这一目标.

另外,这是一种"好"的方式,或者是否有更标准的方法来实现我的目标?

c++ build-process makefile

112
推荐指数
2
解决办法
12万
查看次数

为什么总是./configure; 使; make install; 作为3个单独的步骤?

每次从源代码编译时,都会经历相同的3个步骤:

$ ./configure
$ make
$ make install
Run Code Online (Sandbox Code Playgroud)

我理解,将安装过程划分为不同的步骤是有道理的,但我不明白,为什么这个星球上的每个编码器必须一次又一次地编写相同的三个命令才能完成一个单独的工作.从我的角度来看./install.sh,使用包含以下文本的源代码自动交付脚本是完全合理的:

#!/bin/sh
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

人们为什么要分开做3个步骤?

unix makefile configure make-install

112
推荐指数
2
解决办法
6万
查看次数

标签 统计

makefile ×10

linux ×3

gcc ×2

unix ×2

autotools ×1

build ×1

build-process ×1

c ×1

c++ ×1

configure ×1

gnu-make ×1

make-install ×1

posix ×1