c++ - "Standard library"用于使用 Make 构建 C/C++ 项目

标签 c++ c makefile

有时我需要我的项目使用普通的 makefile,虽然这是一种过时的构建技术,不推荐用于任何用途,但由于 make 几乎随处可用,所以有时它是有意义的。

但是我希望我的 Makefile 看起来像

Include "../buildexec.mk"

TARG = my_exec

CPPFILES = file1.cpp \
           file2.cpp \

并在 buildexec.mk 中包含所有通用(和可怕的)依赖项跟踪代码。

有这样的“Make library”吗?

在 Go 中,您可以包含一个标准的 Makefile,并且您的 Makefile 看起来像 this 一样漂亮。 :

include $(GOROOT)/src/Make.inc

TARG=irc
GOFILES=irc.go irc_struct.go irc_callback.go

include $(GOROOT)/src/Make.pkg 

C++ 有类似的东西吗?

澄清:我知道 tup、cmake 和 scons/我知道 waf 和 bjam 等等/但我希望我的 deps 非常小/这样编译就完全没有问题。我特别要求 Make 支持,而不是 Make 替代品。

最佳答案

我建议使用 automake 生成 makefile反而。 Cmake还生成 makefile,同时还能够为多个 IDE 生成项目文件。

问题是没有人make。非常基本的语法总是相同的,但是任何稍微复杂一点的东西(你需要这样的包含)都不兼容,甚至在 GNU makeBSD make 之间也不兼容(不是试图提及 nmake)。然而,Automake 可以处理多个版本的 make 并在可用时提供自动依赖规则(只有一些编译器支持它们)。

关于c++ - "Standard library"用于使用 Make 构建 C/C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725924/

相关文章:

c++ - 为 Complex 类重载运算符 >> 时发生段错误

c++ - 在内存中二进制搜索与。基于磁盘的二进制搜索

c++ - 如何在QtCreator项目中配置Boost?

makefile - 为什么Make中的 `shell`命令删除换行符?

c++ - 为什么我的 fortran 例程将不正确的值传递给我的 C++ 函数?

c - 如何检测内存泄漏?

c - time() 和上下文切换

shell - 通过Makefile通过ssh发出几个命令时的空行

c++ - omn​​iorb makefile 服务器错误

c - 警告 : implicit declaration of function when compiling C source