一个文件Makefile问题:C++

One-file Makefile Problems: C++

本文关键字:Makefile 问题 C++ 文件 一个      更新时间:2023-10-16

在过去的一个小时里,我一直在摆弄一个生成文件,但似乎找不到它。我需要一个能够在/source/中编译main.cpp并将结果(e2.exe)放在/build/文件夹中的生成文件。以下是我现在拥有的:

build: source/main.cpp
    make -C build/ source/main.cpp

我不知道为什么它不起作用。我试过很多像这样的东西

build: source/main.cpp
    make -o build/ source/main.cpp
build: source/main.cpp
    make -C e2.exe source/main.cpp
build: source/main.cpp
    make -C source/main.cpp e2.exe
build: source/main.cpp
    make source/main.cpp -o e2.exe

还有很多其他的组合。这是我的文件夹结构:

root/
╚build/
 source/
  ╚main.cpp
 e2.pnproj
 e2.pnps
 Makefile

所有尝试的原因是,我遇到的几乎每一个教程都有复杂的例子,而且每一个都有不同的顺序。

我想我最接近它的工作方式是:

build: source/main.cpp
    make -C build/ source/main.cpp

错误是:

make -C build/ source/main.cpp
make[1]: Entering directory `/c/WiiGames/e2/build'
make[1]: *** No rule to make target `source/main.cpp'.  Stop.
make[1]: Leaving directory `/c/WiiGames/e2/build'
"make": *** [build] Error 2

首先,我注意到您正在make处理所有内容。在某个时刻,您确实需要cc(或gcc,或其他什么)。:)

我想你可以像一样

build: source/main.cpp
        $(CXX) -o build/e2.exe source/main.cpp

其中$(CXX)是编译器的名称/路径。(注意,如果您复制/替换,请用选项卡替换这八个空格。)