Questions tagged «makefile»

生成文件是构建控制语言/工具生成的输入文件。它指定目标和依赖项以及要执行的相关命令(又称为配方)以更新目标。

8
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!" 我如何确定设置此变量,例如:是否可以将此makefile变量声明为部署配方的先决条件,例如: deploy: make-sure-ENV-variable-is-set ? 谢谢。
134 makefile 

4
如何在Makefile中设置子进程的环境变量
我想更改此Makefile: SHELL := /bin/bash PATH := node_modules/.bin:$(PATH) boot: @supervisor \ --harmony \ --watch etc,lib \ --extensions js,json \ --no-restart-on error \ lib test: NODE_ENV=test mocha \ --harmony \ --reporter spec \ test clean: @rm -rf node_modules .PHONY: test clean 至: SHELL := /bin/bash PATH := node_modules/.bin:$(PATH) boot: @supervisor \ --harmony …

5
如何在Linux上为gcc创建简单的makefile?
我有三个文件:program.c,program.h和headers.h。 program.c包括program.h和headers.h。 我需要使用gcc编译器在Linux上进行编译。我不确定该怎么做。Netbeans为我创建了一个,但是它是空的。
130 c  gcc  makefile 


4
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 …
127 build  makefile  gnu-make 

4
如何从另一个Makefile调用Makefile?
我收到一些意外的结果,从另一个调用一个生成文件。我有两个makefile,一个叫做/path/to/project/makefile,另一个叫/path/to/project/gtest-1.4.0/make/Makefile。我试图让前者称呼后者。在/ path / to / project / makefile中,我有 dev: $(OBJ_FILES) $(CPPC) $(LIBS) $(FLAGS_DEV) $(OBJ_FILES) -o $(BIN_DIR)/$(PROJECT) $(MAKE) -f ./gtest-1.4.0/make/Makefile clean: rm -f ./*~ ./gmon.out ./core $(SRC_DIR)/*~ $(OBJ_DIR)/*.o rm -f ../svn-commit.tmp~ rm -f $(BIN_DIR)/$(PROJECT) make -f gtest-1.4.0/make/Makefile clean 在/path/to/project/gtest-1.4.0/make/Makefile我里面 all: $(TESTS) clean: rm -f $(TESTS) gtest.a gtest_main.a *.o 发出以下内容: cd /path/to/project …
125 makefile  gnu-make 

9
如何在Windows中安装和使用“ make”?
我正在遵循某人的说明,该人的存储库已克隆到我的机器上。我想要的很简单:能够将make命令用作设置代码环境的一部分。但是我使用的是Windows,我在网上搜索的唯一目的是找到要下载的make.exe文件,要下载的make-4.1.tar.gz文件(接下来我不知道该怎么做)以及有关下载MinGW(对于GNU;但安装后,我没有提到“ make”)。 我不需要GNU编译器或相关的东西;我只想在Windows中使用“ make”。请告诉我该怎么做。 提前致谢!

19
是否可以在Makefile中创建多行字符串变量
我想创建一个makefile变量,该变量是多行字符串(例如,电子邮件发布公告的正文)。就像是 ANNOUNCE_BODY=" Version $(VERSION) of $(PACKAGE_NAME) has been released It can be downloaded from $(DOWNLOAD_URL) etc, etc" 但是我似乎找不到办法。可能吗?

2
makefile执行另一个目标
我有一个makefile结构如下: all : compile executable clean : rm -f *.o $(EXEC) 我意识到在运行“ make all”之前,我一直在终端中先执行“ make clean”,然后执行“ clear”。在尝试筛选令人讨厌的C ++编译错误之前,我希望拥有一个干净的终端。所以我尝试添加第三个目标: fresh : rm -f *.o $(EXEC) clear make all 这行得通,但是运行了第二个make实例(我相信)。是否有正确的方法可以在不运行第二个make实例的情况下获得相同的功能?
122 makefile 

5
Makefile中的多行bash命令
我有一种非常舒适的方法,可以通过几行bash命令来编译我的项目。但是现在我需要通过makefile对其进行编译。考虑到每个命令都在自己的shell中运行,我的问题是在makefile中运行彼此依赖的多行bash命令的最佳方法是什么? 例如,像这样: for i in `find` do all="$all $i" done gcc $all 另外,有人可以解释为什么即使单行命令bash -c 'a=3; echo $a > file'在终端中也能正常工作,而在makefile情况下却创建空文件吗?
120 bash  makefile 

3
make的DESTDIR和PREFIX
我正在尝试将软件安装到特定目录。我发现了几种方法,但不确定它们之间有什么区别。 ./configure --prefix=*** make install DESTDIR=*** make install prefix=*** 我对这三个功能感到困惑。他们是否达到了相同的目标?
118 c  linux  bash  makefile  configure 

4
为什么总是./configure; 使; 进行安装;作为3个单独的步骤?
每次从源代码编译内容时,您都将经过相同的3个步骤: $ ./configure $ make $ make install 我知道,将安装过程分为不同的步骤是有意义的,但是我不明白,为什么这个星球上的每个编码人员都必须一次又一次地编写相同的三个命令才能完成一项工作。以我的观点,完全./install.sh自动将包含以下文本的脚本与源代码一起交付是完全有意义的: #!/bin/sh ./configure make make install 人们为什么要分别执行这三个步骤?

3
Cmake vs Make示例代码?
我想知道是否有Makefiles(make)和CMakeLists.txt(cmake)的示例代码都做相同的事情(唯一的区别是一个写在make另一个中cmake)。 我尝试寻找“ cmake vs make”,但是我从未找到任何代码比较。即使只是简单的情况,了解这些差异也将非常有帮助。
117 makefile  cmake 

2
我可以将src /中的所有.cpp文件编译为obj /中的.o,然后链接到./中的二进制文件吗?
我的项目目录如下所示: /project Makefile main /src main.cpp foo.cpp foo.h bar.cpp bar.h /obj main.o foo.o bar.o 我希望makefile可以将.cpp文件/src夹中的所有文件编译为文件夹.o中的/obj文件,然后将所有.o文件链接/obj到顶级文件夹中的输出二进制文件中/project。 我几乎没有使用Makefile的经验,也不确定要搜索什么来完成此操作。 另外,这是执行此操作的“好方法”,还是我要尝试执行的更标准的方法?

5
CMake输出/构建目录
我是CMake的新手,阅读了一些有关如何使用它的教程,并编写了一些复杂的50行CMake脚本,以便为3个不同的编译器编写程序。这可能总结了我在CMake中的全部知识。 现在我的问题是我有一些源代码,制作程序时我不想碰到/碰到它们的文件夹。我希望所有CMake以及make输出文件和文件夹都进入其中../Compile/,因此我为此在CMake脚本中更改了一些变量,并且在我在笔记本电脑上执行以下操作时它起作用了: Compile$ cmake ../src Compile$ make 在那里,我现在在的文件夹中有干净的输出,这正是我想要的。 现在,我移至另一台计算机,并重新编译了CMake 2.8.11.2,然后我几乎回到了原来的水平!它总是将东西编译到srcmy所在的文件夹中CMakeLists.txt。 我在CMake脚本中选择目录的部分是: set(dir ${CMAKE_CURRENT_SOURCE_DIR}/../Compile/) set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dir}) set(CMAKE_BUILD_FILES_DIRECTORY ${dir}) set(CMAKE_BUILD_DIRECTORY ${dir}) set(CMAKE_BINARY_DIR ${dir}) SET(EXECUTABLE_OUTPUT_PATH ${dir}) SET(LIBRARY_OUTPUT_PATH ${dir}lib) SET(CMAKE_CACHEFILE_DIR ${dir}) 现在,它总是以: -- Build files have been written to: /.../src …
115 c++  build  makefile  cmake  output 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.