Tag: makefile

使用makefile编译头依赖项

我正在用C编程语言编写UDP客户端服务器应用程序; 我想在依赖项发生变化时自动编译2个源文件和3个头文件,所以我决定使用make实用程序。 makefile目标称为“编辑” : edit : server_UDP.o client_UDP.o \ gcc -o edit server_UDP.o client_UDP.o \ client_UDP.o : client_UDP.c cliHeader_UDP.h wrapHeader.h gcc -c client_UDP.c server_UDP.o : server_UDP.c servHeader_UDP.h wrapHeader.h gcc -c server_UDP.c 当我在wrapHeader.h中更改几行代码时,它不会触发重新编译。 当wrapHeader.h中有更改以重新编译server_UDP和client_UDP时,如何修改编辑makefile规则? **注意 :wrapHeader.h是主标题 cliHeader_UDP.h:包含“wrapHeader.h” servHeader_UDP.h:包含“wrapHeader.h”

示例makefile,用于在标头更改时构建简单的c项目重新编译

有没有人有一个完整的makefile可以执行以下操作: 如果HEADER文件发生更改,则重建项目 cpp文件列在makefile中 头文件未在makefile中列出 允许头文件具有与cpp文件不同的名称 某些cpp文件没有头文件 我已经看到了如何使make工具找出标头依赖关系的说明,但这些指令都没有提供任何与工作示例类似的东西。 一个简单的例子如下:main.cpp C1.cpp C1.h C2.cpp C2.h

如何删除Makefile中的重复?

有没有办法在Makefile中简化这种重复? duo = ./node_modules/.bin/duo build: lib/background/build lib/page/build lib/popup/build lib/background/build: lib/background/build/build.js lib/background/build/build.css lib/page/build: lib/page/build/build.js lib/page/build/build.css lib/popup/build: lib/popup/build/build.js lib/popup/build/build.css lib/background/build/build.js: lib/background/index.js node_modules component.json @mkdir -p lib/background/build @$(duo) lib/background/index.js > lib/background/build/build.js lib/page/build/build.js: lib/page/index.js node_modules component.json @mkdir -p lib/page/build @$(duo) lib/page/index.js > lib/page/build/build.js lib/popup/build/build.js: lib/popup/index.js node_modules component.json @mkdir -p lib/popup/build @$(duo) lib/popup/index.js > lib/popup/build/build.js lib/background/build/build.css: lib/background/index.css node_modules component.json @mkdir […]

在Cygwin / MinGW中安装/编译 – 如何设置包含“路径”? (符号链接?)

我一直在尝试使用Cygwin和MinGW在Windows 7中安装/编译C库。 但是,我在make期间遇到这样的错误: sys/resource.h: No such file or directory sys/times.h: No such file or directory 我之前认为这可能是特定库的一个问题,并在这里问: 在Visual Studio 2010和Cygwin / MinGW中安装igraph的各种问题(“sys / time.h not found”) ,但在遇到与不同库相同的错误后,我认为问题在于我。 尝试 cygwin/usr/include/sys/times.h和cygwin/usr/include/sys/resource.h存在。 在获得有关符号链接的建议后,我使用了ln -s /usr/include/sys sys来确保sys/times.h有效。 我去看一个特定库(igraph)的make输出。 它说它进入了一个“src”文件夹。 所以,我去了src文件夹并做了同样的事情: ln -s /usr/include/sys sys并确保sys/times.h也在src文件夹中工作。 但是,我仍然得到: fatal error: sys/times.h: No such file or directory 题 如何设置make的“路径”以在/ usr / include / sys文件夹中查找“sys […]

为什么SCons VariantDir()没有将输出放在给定目录中?

我正在考虑将SCons用于新项目。 它看起来非常好,虽然我发现VariantDir非常混乱。 我有一个简单的项目,在一个目录中有一些C源文件,我想在“正常”和“配置文件”模式下构建 – 与gcc有两组不同的选项。 我希望输出分别进入普通的/和profile /目录。 为了测试,我已经减少了一个源文件tc,其中有一个main() 。 我的SConstruct文件位于同一目录中,如下所示: normal = DefaultEnvironment(tools=[‘mingw’], CCFLAGS = ‘-O2’) normal.VariantDir(‘release’, ‘.’, duplicate=0) normal.Program(‘t’, [‘t.c’]) #profile = normal.Clone(CCFLAGS=’-O2 -pg’, LINKFLAGS = ‘-pg’) #profile.VariantDir(‘profile’, ‘.’, duplicate=0) #profile.Program(‘t’, [‘t.c’]) 当我运行scons时,我希望它能将t.exe放入release /,但它会将它们放在当前目录中。 并且我无法运行它,并且3个配置文件行未注释 – 如果我这样做,我会收到此错误: scons:***为同一目标指定了两个具有不同操作的环境:to 基本上,我不确定为什么我的VariantDir()调用没有告诉scons将输出放在指定的输出目录中, release 。 (我在文档和新闻组中读了很多,但没有回答这个问题。我最接近的是这个页面 ,它描述了一个类似的东西,但它涉及一个单独的src /目录和两个独立的scons文件,以及在它们之间导入/导出变量。这看起来不太愉快。)

Makefile包含头文件

我是Linux编程新手我试图编译一个简单的测试结构。 但是我在编译时遇到错误。 添加inc.c(在app:行中)也不起作用。 我该如何包含正确的文件? Makefile文件: app: main.c inc.h cc -o app main.c 终奌站: make cc -o app main.c /tmp/ccGgdRNy.o: In function `main’: main.c:(.text+0x14): undefined reference to `test’ collect2: error: ld returned 1 exit status make: *** [app] Error 1 main.c中: #include #include “inc.h” int main() { printf(“Kijken of deze **** werkt:\n”); test(); getchar(); return 0; […]

Makefile中缺少分隔符?

以下Makefile不起作用,我不确定发生了什么。 CC = gcc CFLAGS = -Wall -g demo: ${CC} ${CFLAGS} demo.c -o demo lib: ${CC} ${CFLAGS} lib.c -o lib clean: rm -f lib demo Demo具有main函数,lib具有一组演示中使用的方法。 我在-cg中添加了-c标志。 但是,当我运行make时,我得到: Makefile:5: *** missing separator. Stop.

使用没有makefile的make命令?

我正在为一个赋值编译一些C代码,我运行了“make codeFile”,其中“codeFile”是我的C程序的名称,即使我没有makefile,也创建了一个可执行文件,它运行并运行正确。 有谁知道为什么这有效? 即使我没有makefile,为什么make会编译? 我能找到的唯一参考是: http : //daly.axiom-developer.org/TimothyDaly_files/class5/node5.html

使用make编译多个C文件

(我正在运行Linux Ubuntu 9.10,所以可执行文件的扩展名是executablefile.out)我刚刚进入C语言的模块化编程(用多个文件编程),我想知道如何在一个makefile中编译多个文件。 例如,编译这些文件的makefile是什么:main.c,dbAdapter.c,dbAdapter.h? (顺便说一句,如果你还没有弄明白,主要function是在main.c中)还有人可以发布一个指向makefile文档的链接吗?

如何向Makefile添加调试选项

我有以下简单的Makefile,我用它来编译C程序: all: gcc -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm 我想添加一个调试选项,这样我就可以使用-DDEBUG进行编译,所以如果我运行的话 make 它正常编译。 如果我跑 make debug 它与调试标志汇编。 我已阅读了一些教程,但似乎越来越困惑。