gpt4 book ai didi

c++ - 使用 makefile 编译 C++ 11 程序的简单方法

转载 作者:太空宇宙 更新时间:2023-11-04 05:23:59 26 4
gpt4 key购买 nike

收到一个用 c++11 编写一个简单程序的作业,其中包含以下文件:

  • main.cpp
  • 房子.h
  • 树.h

main函数显然在main.cpp文件中。main.cpp 包含 2 个头文件并使用它们。

当我尝试在 Linux 上编译时,我写道:

g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -o prog

我得到了一个可以运行的prog文件。

然后我尝试使用 makefile 编译它,我所做的是:

all:
g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -o prog

然后点击全部制作

遗憾的是它不起作用。试图在网络上搜索如何正确执行此操作,但没有成功。你能告诉我需要如何完成吗?

还有,如何进行智能编译?即仅当上述文件发生更改时才进行编译。

谢谢!

最佳答案

仅使用以下几行创建一个 Makefile 并检查一下:

CFLAGS += -g -O2 -Wall -W -pedantic
CXXFLAGS=$(CFLAGS) -std=c++11
CFLAGS += -pthread
LDFLAGS += -pthread

然后输入make main。 Make 将搜索其内置规则,并发现有一种方法可以从 main.cpp 到名为 main 的已编译程序。然后它将执行一个内置规则,如下所示:

$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@

如果您只想输入 make 那么您可以添加:

all: main

当您输入 make 时,内置的隐式规则将为您构建 main

关于c++ - 使用 makefile 编译 C++ 11 程序的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com