c++ - 如何设置 Makefile 以使用 Visual-Studio 风格的输出目录进行构建?

标签 c++ linux build makefile

我在 Linux 上有一个基于 makefile 的基本项目。它还在 Windows 上的 Visual Studio 中构建。

我想修改我的 Linux makefile 以创建具有不同二进制文件的多个构建,调试和发布开始,但可能会添加其他。

如何设置 Makefile 项目以不同的方式将源代码构建到不同的路径?

例如,调试构建类似于:

g++ -ggdb -Wall -DDEBUG
.o files in ./Debug/obj
.so and binary files in ./Debug/bin

发布输出将是:

g++ -Os -Wall
.o files in ./Release/obj
.so and binary files in ./Release/bin

make debug 或 make release 会生成它们,或者 make all 会做所有事情。

我如何在 Makefile 中创建多个构建类型,但我真正不清楚的部分是设置输出目录和设置哪个 .o 文件目录来检查源文件是否已构建。

欢迎提供指向相关示例和文档的指针。

最佳答案

花点时间阅读,前往Paul Smith's homepage , GNU Make 的维护者,阅读这两篇文章:

然后您可能会明白,在当前目录以外的目录中构建不是一个好主意,因为这意味着违背 Make 的原则。

这些文章还将指导您如何组织构建,它可能恰好适合您的特定情况。

关于c++ - 如何设置 Makefile 以使用 Visual-Studio 风格的输出目录进行构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9675424/

相关文章:

c++ - 在计算中使用 boolean 值以避免分支

linux - 我怎样才能在bash shell脚本中编写这种for循环?

android - 我从哪里可以获得 libmp3lame.so 文件?

tfs - 定义 TFS 构建定义依赖性和顺序

c++ - 使用 pdb 文件调试时 VS2017 阻塞在不存在的目标文件上

c++ - 在 Windows 7 上开始使用 OpenCV 2.4 和 MinGW

linux -/dev/bus/usb 未创建/未找到

java - mvn clean 和 install 命令之间的区别

maven-2 - 针对不同配置文件的 Maven 构建

c++ - 资源获取即初始化 (RAII) 是什么意思?