标签: makefile

@, - 和+作为Make中的配方行的前缀做什么?

在GNU Makefile手册中,它提到了这些前缀.

如果提供.ONESHELL,则仅检查配方的第一行是否有特殊前缀字符('@',' - '和'+').

这些前缀做了什么,它们在哪里提到?

makefile gnu-make

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

在远程Linux机器上编译C++ - "检测到时钟偏斜"警告

我通过PuTTY和WinSCP连接到我大学的小型Linux集群,使用后者传输文件,并使用前者编译和运行它们.到目前为止,我的工作已在大学的实验室进行,但今天我在家里做了一些工作,产生了一个有趣的警告.

我上传了整个文件夹,在运行make命令后,我将其作为输出的最后一行:

make:warning:检测到时钟偏斜.您的构建可能不完整.

生成的二进制文件正常工作,并且在构建过程中似乎没有任何其他意外错误.

我似乎能够在上传一些新的/替换文件之后通过构建来触发错误(我在本地编辑所有内容然后上传新版本),所以我想知道它是否像文件修改时间不匹配一样简单?还是更关心的事情?

那么,我应该担心吗?我该如何修复/防止这种情况?

linux makefile

161
推荐指数
7
解决办法
19万
查看次数

如何强制makefile重建目标

我有一个生成的makefile,然后调用另一个makefile.由于这个makefile调用更多makefile来完成工作,因此它并没有真正改变.因此,它一直认为项目是建立和最新的.

dnetdev11 ~ # make
make: `release' is up to date.
Run Code Online (Sandbox Code Playgroud)

如何强制makefile重建目标?

clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean


build = svn up ~/xxx                                                       \
        $(clean)                                                                \
        ~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace        \
        $(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1)                    \


release:
        $(build )

debug:
        $(build DEBUG=1)

clean:
        $(clean)

install:
        cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin
        cp ~/xxx/source/xxx_utility/release/xxxcore.so /usr/local/lib
Run Code Online (Sandbox Code Playgroud)

注意:删除名称以保护无辜者

编辑:最终修正版:

clean = $(MAKE) -f xxx_compile.workspace.mak clean;


build = svn up;                                         \
        $(clean)                                        \
        ./cbp2mak/cbp2mak -C . xxx_compile.workspace;   \
        $(MAKE) -f xxx_compile.workspace.mak    $(1);   \


.PHONY: release debug clean …
Run Code Online (Sandbox Code Playgroud)

linux makefile

159
推荐指数
9
解决办法
17万
查看次数

为什么没有人使用make for Java?

几乎我见过的每个Java项目都使用Maven或Ant.它们是很好的工具,我认为任何项目都可以使用它们.但是,什么都发生在使?它用于各种非Java项目,可以轻松处理Java.当然,如果你使用Windows,你必须下载make.exe,但是Ant和Maven也没有随JDK一起提供.

与Java一起使用时,make有一些基本缺陷吗?是不是因为Ant和Maven是用Java编写的?

java ant makefile maven

154
推荐指数
11
解决办法
5万
查看次数

如何在Windows中运行makefile?

我有一些我下载的演示,它们带有Makefile.win和Makefile.sgi.如何在Windows中运行这些来编译演示?

windows makefile

153
推荐指数
9
解决办法
46万
查看次数

使用G ++编译多个.cpp和.h文件

我刚刚继承了一些C++代码,这些代码写得不好用一个cpp文件,其中包含main和一堆其他函数.还有一些.h文件包含类及其函数定义.

到目前为止,该程序是使用该命令编译的g++ main.cpp.现在我已经将类.h.cpp文件分开了,我需要使用makefile还是我仍然可以使用g++ main.cpp命令?

c++ makefile compilation header

148
推荐指数
7
解决办法
28万
查看次数

使用本地makefile进行CLion而不是CMake

有没有办法配置CLion使用本地makefile来编译代码,而不是CMake?我似乎无法从构建选项中找到方法.

makefile clion

145
推荐指数
4
解决办法
9万
查看次数

@ :(符号冒号)在Makefile中的含义是什么?

Makefile中的以下内容是什么?

rule: $(deps)
    @:
Run Code Online (Sandbox Code Playgroud)

我似乎无法在制作手册中找到这个.

makefile gnu-make

141
推荐指数
2
解决办法
5万
查看次数

如果未设置变量,则中止makefile

如何根据未设置/值的makefile变量中止make/makefile执行?

我想出了这个,但只有在调用者没有显式运行目标(即make仅运行)时才有效.

ifeq ($(MY_FLAG),)
abort:   ## This MUST be the first target :( ugly
    @echo Variable MY_FLAG not set && false
endif

all:
    @echo MY_FLAG=$(MY_FLAG)
Run Code Online (Sandbox Code Playgroud)

我认为这样的事情是个好主意,但在make的手册中没有找到任何内容:

ifndef MY_FLAG
.ABORT
endif
Run Code Online (Sandbox Code Playgroud)

makefile

139
推荐指数
6
解决办法
9万
查看次数

GNU Make中CPPFLAGS和CXXFLAGS之间的区别

GNU Make中CPPFLAGS和CXXFLAGS之间有什么区别?

makefile gnu-make

131
推荐指数
3
解决办法
6万
查看次数

标签 统计

makefile ×10

gnu-make ×3

linux ×2

ant ×1

c++ ×1

clion ×1

compilation ×1

header ×1

java ×1

maven ×1

windows ×1