gcc/g++ 的简单 makefile
我的项目总是包含:
成对的 Foo.h 和 Foo.cpp
一些额外的标头 util.h 等
的 makefile 最简单的方法是什么
- 编写
运行
<前><代码>$CC -c foo.cpp
,保留对其相应 .h 文件的依赖关系
- 提供了某种方式,使我可以手动添加额外的依赖关系
- 包括与我的手动设置 $LIBS 变量的链接步骤。
我使用 Linux(Ubuntu) 和 gcc/g++。
My projects almst always consist of:
Pairs of Foo.h and Foo.cpp
Some extra headers util.h etc.
What is the simplest way to write a makefile that
Runs
$CC -c foo.cpp
for each .cpp file, keeping a dependency to its coresponding .h file
- Provides some way that I can manually add extra dependencies
- Includes a linking step with my manuall set $LIBS variable.
I work with Linux(Ubuntu) and gcc/g++.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
从这里开始 gcc 的简单 makefile
start here simple makefile for gcc
这是我的一个项目中的一个示例 - 您只需将新对
foo1.cc
和foo1.h
放入其中,它们就会自动为您构建:Here is an example from one of my projects -- you can simply drop new pairs
foo1.cc
andfoo1.h
in there and they will automagically be built for you:请使用
automake
。您将获得正确的依赖项跟踪以及符合 GNU Makefile 标准的 makefile (例如,make install
执行正确的操作并尊重DESTDIR
和前缀
),能够根据需要检查系统怪癖并支持构建适当的分发 tarball。这是一个最小的
configure.ac
:和一个最小的
Makefile.am
:运行
autoreconf -i
生成配置脚本,然后运行 >./configure
和make
。这是优秀的自动工具教程。
Please, just use
automake
. You'll get proper dependency tracking, makefiles that comply with the GNU Makefile Standards (e.g.,make install
does the correct thing and respectsDESTDIR
andprefix
), the ability to check for system quirks as needed and support for building proper distribution tarballs.This is a minimal
configure.ac
:and a minimal
Makefile.am
:Run
autoreconf -i
to generate the configure script, followed by./configure
andmake
.Here is an excellent autotools tutorial.
这个怎么样:
How about this:
也许您可以查看CMake?
如果您不熟悉 CMake,它基本上是一个 Makefile 生成器(或 XCode 或 Visual Studio 项目等,具体取决于平台),因此它可以让您只指定所需的变量,并为您处理标头依赖问题, makefile生成等
Perhaps you can check out CMake?
If you're unfamiliar with CMake, it's basically a Makefile generator (or XCode, or Visual Studio Projects, etc, depending on platform), so it lets you specify just the variables you need, and takes care of header dependency issues for you, makefile generation, etc.
下面是一个简单的 shell 脚本,它从给定目录中的所有 .cpp 文件构建 makefile:
它使用 gcc 的
-MM
选项来创建 makefile 依赖行。只需在源目录中创建脚本(我们称之为micmake
),使其可执行(chmod +x micmake
)并键入它将创建一个 makefile 和
make
命令编译您的项目。该可执行文件名为go
。如果需要特殊的编译选项或库,可以编辑 makefile。对于更复杂的项目和依赖项,您应该使用 automake、cmake 或 scons。Here is a simple shell script that constructs a makefile from all .cpp files in a given directory:
It uses the
-MM
option of gcc for creating makefile dependency lines. Just create the script in the sources directory, (let's call itmicmake
), make it executable (chmod +x micmake
) and typeIt will create a makefile and the
make
command compile your project. The executable is namedgo
. You can edit the makefile if you need special compilation options or libraries. For more complex projects and dependencies, you should use automake, cmake or scons.