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

标签 c++ linux makefile

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

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?!真的那么难吗?

最佳答案

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

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

关于c++ - Linux:从给定的源文件自动创建 C++ makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069444/

相关文章:

c++ - 为什么在非指针堆栈分配变量上调用 delete 时 C++ 不给出编译器错误?

c++ - 容器和 'iterable' 类的虚拟父级

c++ - 使用输出迭代器的通用函数示例不起作用

c - 将 gnu make 与 makefile 一起使用,为什么我的 .o 文件没有被删除?

c - 文件锁定与信号量

c++ - 创建将 .o 存储到目录的 makefile c++

c++ - 如何计算 C++ 中 float 的小数位数?

java - make 文件中的 CLASSPATH 是什么

c++ - 无法在 Windows 命令行中编译任何 Qt 项目,只能在 Qt Creator 中编译

java - Docker 容器中的 OpenJDK 1.8.0 与/etc/timezone 和主机的时区不同