makefile相关内容

有什么好的 C++ 项目构建工具,可以代替 make 吗?

我想知道是否有任何漂亮而简洁的工具来代替 GNU Autotools 或 Make 来构建一个非常大的 C++ 项目,这些项目使用起来非常复杂. 如果项目很小,生成de Autotools需要的所有文件很简单,但是如果源代码分在很多目录下,有多个第三方库和很多依赖,你就陷入了“Autotools地狱".. 感谢您的任何建议 解决方案 Google V8 JavaScript 引 ..
发布时间:2021-12-28 20:15:25 C/C++开发

制作配方以防止重建非依赖目标

我有以下项目目录结构: 程序/包括/包括/目录1/包括/目录2/源/src/目录1/src/目录2 App1 依赖于 mod1 和 mod2,而 App2 只依赖于 mod1. 使用下面表示的 makefile,模块和应用程序都可以正确构建 - 但是,如果我对 mod2 进行更改,然后执行“全部构建",即使 App2 没有依赖项,它也会重新构建. 这样做的原因是,传递到目标构建配方 ..
发布时间:2021-12-28 20:11:02 C/C++开发

我使用 Mercurial 钩子将版本号嵌入到我的应用程序中的方法有多好?

这不是一个很具体的问题,我更喜欢批评我目前的方法. 我想在我正在开发的程序中包含程序版本号.这不是商业产品,而是研究应用程序,因此了解生成结果的版本非常重要. 我的方法如下: 我的 .hg/hgrc 文件链接到 version_gen.sh 中有一个“预提交"钩子 version_gen.sh 仅包含:hg parent --template "r{rev}_{date|sho ..
发布时间:2021-12-28 20:10:26 其他开发

在 Git 工作区中检测修改文件的简单方法是什么?

在 make 期间,我创建了嵌入在链接输出中的字符串字段.很有用. 除了对 git status 命令进行复杂的 sed/grep 解析之外,我如何轻松确定工作区中的文件是否已被根据git修改? 解决方案 如果你只是想要一个简单的“与 HEAD 有什么区别吗?": git diff-index --quiet HEAD 如果退出代码为 0,则没有区别. 如果您想要“HEAD ..
发布时间:2021-12-28 20:07:44 其他开发

使用 qmake 查找编译器供应商/版本

有什么办法可以通过qmake获取用户使用的编译器的版本和厂商吗?我需要的是在使用 g++ 3.x 时禁用构建我的项目的某些目标,并在使用 g++ 4.x 时启用它们. 更新:大多数答案都针对预处理器.这是我想要避免的.我不希望为特定的编译器版本构建目标,我希望由构建系统做出这个决定. 解决方案 除了 ashcatch 的答案,qmake 允许您查询命令行 并将响应作为变量返回.所以你 ..
发布时间:2021-12-28 20:05:54 C/C++开发

典型的 ./configure 在 Linux 中有什么作用?

尽管所有内容都在 makefile 中指定,为什么还需要? 解决方案 通常运行时的配置脚本: 检查机器的一些细节软件将在哪个平台上运行安装.此脚本检查对你的系统有很多依赖.为了特定的软件工作正确地,它可能需要很多存在于您的机已经.如果您的系统缺少任何主要要求,配置脚本将 exit 并且您无法继续安装,直到您获得那些必需的东西. 创建要在下一步中使用的 Makefile. ..
发布时间:2021-12-28 20:03:04 服务器开发

Makefile结合js文件制作压缩版

我正在尝试编写一个基本的 makefile,将多个 js 文件组合成一个,然后执行相同的操作但压缩它们. 到目前为止,我有一个可以使压缩版本正常的. #设置源码目录srcdir = src/# 创建模块列表模块 = ${srcdir}core.js\${srcdir}sizzle.js\${srcdir}json2.js\${srcdir}ajax.js\${srcdir}attribut ..
发布时间:2021-12-28 19:58:47 前端开发

从 make 文件中禁用 make 内置规则和变量

我想根据传递的 禁用内置规则和变量-r 和 -R 选项 到 GNU make,从 make 文件中.也欢迎其他允许我隐式和透明地执行此操作的解决方案. 我发现 几个参考使用MAKEFLAGS,并有类似的问题. 解决方案 你可以用 #! 开始 Makefile 并称它为不同的东西,这样人们就不会尝试直接使用make: #!/usr/bin/make -rRf# ... 如果 GNU ..
发布时间:2021-12-28 19:55:05 其他开发

与 gmake 的自动头依赖关系

已编辑 我正在尝试重新编译源文件,而不必为 makefile 中的每个 CPP 指定头文件. 我想: #CoreObj1.cpp(和.h)#CoreObj2.cpp(和.h)#这是生成文件.CORE_COMPONENT_OBJECTS = \obj/CoreObj1.o \obj/CoreObj2.o \# 对象对象/%.o: %.cpp 对象/%.d@mkdir -p obj$(C ..
发布时间:2021-12-28 19:53:11 其他开发

如何将构建时间戳写入apk

对 Android 通讯录包进行一些更改 使用mm(make)命令来构建这个应用程序 因为我必须一次又一次地更改和构建这个应用程序,所以我想在 Contacts.apk 中添加一个构建时间戳来检查我们在手机中运行它时的构建时间. 我们知道,当我们运行 mm 命令时,将调用 Contacts 包中的 Android.mk (makefile). 现在,我们可以使用 date-ma ..
发布时间:2021-12-28 19:50:31 移动开发

您对非递归 make 的体验如何?

几年前,我阅读了递归生成有害论文并实现了这个想法在我自己的构建过程中.最近,我读了另一篇关于如何实现非递归make.所以我有一些数据点,非递归 make 至少适用于几个项目. 但我很好奇其他人的经历.你试过非递归的 make 吗?它让事情变得更好还是更糟?值得花时间吗? 解决方案 我们在我工作的公司使用非递归 GNU Make 系统.它基于米勒的论文,尤其是您提供的“实现非递归生成" ..
发布时间:2021-12-28 19:42:16 其他开发

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

我的项目目录如下: /项目生成文件主要的/源主程序文件foo.hbar.cpp酒吧.h/物件主文件foo.o酒吧 我想让我的 makefile 做的是将 /src 文件夹中的所有 .cpp 文件编译成 .o 文件在/obj 文件夹,然后将 /obj 中的所有 .o 文件链接到顶级文件夹 /中的输出二进制文件中项目. 我几乎没有使用 Makefile 的经验,也不确定要搜索什么来完成此任务 ..
发布时间:2021-12-28 19:41:34 C/C++开发

gdb 调试器访问未找到的文件

我正在尝试做一些相当简单的事情,但不明白为什么我会收到错误消息.我有一个 Makefile 我将包括在内,以便您可以看到发生了什么.但是当我逐步执行该程序时,我得到 libc-start.c: No such file or directory.有没有办法在 Makefile 中处理这个问题或避免这种情况? 生成文件 # makefile 构建程序# 程序依赖于组件:name 和 main ..
发布时间:2021-12-28 10:47:26 服务器开发

在 OS X 上使用“make"

我有一台 MacBook Pro,我正在尝试对其进行一些开发. 我有一个要构建的程序,当我使用 make 构建它时,出现“找不到命令"错误.我做了一些谷歌搜索和 Stack Overflow 搜索,看起来这不是一个常见问题.为什么我没有安装 make 以及如何获得它? 我特别困惑,因为我知道我最近(在过去一个月左右)使用这台笔记本电脑时使用过它. 解决方案 您是否安装了 App ..
发布时间:2021-12-28 10:18:11 其他开发

在 Windows 命令行中将 Jar 文件添加到 Buildpath

我很生气不得不问这个问题,但我无法让它工作.目前我有一个项目: src/文件夹中的 5 个类 2 个名为 profiles.jar 的 JARS 和根目录下的classifier.jar 我想创建一个“makefile?"或“批处理文件?"编译和运行这些类从 WINDOWS 命令​​行,但首先将 jar 添加到构建路径?我不知道我是怎么做的 当我尝试这样做时,它说找不到类, ..
发布时间:2021-12-27 23:09:04 Java开发

为什么我会警告“CMAKE_TOOLCHAIN_FILE"项目没有使用变量?

当我构建一些第三方代码时,我看到来自 CMake 的以下警告: CMake 警告:项目未使用手动指定的变量:CMAKE_TOOLCHAIN_FILE 是什么导致了这个警告?我检查了配置文件,但找不到定义此变量的任何地方. 我应该关注这个警告吗?如何修复它以使警告消失? 解决方案 这是 CMake 在您为其提供一个未使用的命令行选项时生成的标准警告.例如,当 CMakeLists. ..
发布时间:2021-12-26 22:15:23 其他开发