Linux:从给定的源文件自动创建 C++ makefile

Posted

技术标签:

【中文标题】Linux:从给定的源文件自动创建 C++ makefile【英文标题】:Linux: Create automatically C++ makefile from given source files 【发布时间】:2013-09-28 17:01:54 【问题描述】:

我有一个这样的项目结构:

src/main.cpp
src/Folder/this.cpp
src/Folder/that.cpp
src/NewFolder/foo.cp
// etc.

此外,我需要一些库以便我可以链接,例如lboost_system。我怎样才能用这些给定的信息简单地创建一个makefile?我一直在阅读有关手动创建 makefile、CMake 等的内容,但我认为这太复杂了! 没有任何工具可以指定以下信息:

Source folder: /home/bla/src/
Additional Libs: lboost_system
Compiler Flags: -std=c++0x (or whatever)

然后生成了一个makefile?!真的那么难吗?

【问题讨论】:

这实际上就是 cmake 文件的全部内容。用普通的老牌子来做这件事并不难。 你也可以使用一些IDE,它会为你做的 其实我是用Netbeans来生成makefile的。但首先,这在某种程度上是“过度设计”的,只是为了生成一个生成文件,其次我现在使用的是一台处理能力非常低的电脑。安装 Eclipse 或 Netbeans 很糟糕 【参考方案1】:

您可以以通用方式编写 Makefile - 即您不必一一指定每个源文件。看看http://www.puxan.com/Computers/Howto-write-generic-Makefiles,我很久以前就做过了,所以我不记得细节了,但最后添加 *.cpp 文件并不(通常)需要更改 Makefile。

您还可以查看 automake (http://www.gnu.org/software/automake/manual/automake.html),它比裸 cmake 领先一步。如果您想将软件作为源文件分发,它会标准化 make 目标,并且看起来会让您的生活更轻松。

【讨论】:

以上是关于Linux:从给定的源文件自动创建 C++ makefile的主要内容,如果未能解决你的问题,请参考以下文章

从 C++ 源文件创建 Windows DLL

是否有一个好的 C++ 库来读取、创建和修改 BER 编码文件?

从 c++ 程序创建 tar.gz-archive 不起作用

Linux 文件权限

linux c++ 拷贝文件问题

CentOS Linux文件权限详解