问题:
我需要在特定文件夹中创建.o文件。但要知道,它们只是在与我的main.cpp相同的文件夹中创建的。
Makefile代码:
cversion = -std=c++23
true = 1
false = 0
notfalse = 1
ClassPath = ./test
dotO = ./dotO
output.exe: message.o main.o
g++ $(cversion) main.o message.o -o output
main.o: main.cpp
g++ $(cversion) -c main.cpp
message.o: message.cpp
g++ $(cversion) -c message.cpp
clean:
@cls
@echo Errasing...
@del *.o
@del output.exe
@echo Files have been erased.
字符串
message.h:
int messageBox(int x, int y);
型
message.cpp:
int messageBox(int x, int y){
return x+y;
}
型
main.cpp:
#include <iostream>
#include "message.h"
int main(){
std::cout << messageBox(10, 50) << std::endl;
}
型
重要详情:
OS : Windows
Text Editor : VScode
I am using mingw64
型
3条答案
按热度按时间mefy6pfw1#
如果你想把它们放在一个特定的文件夹中,你需要把它们放在那里,然后从那里使用它们。因此,要将它们放在名为
folder
的文件夹中,您需要以下内容:字符串
上面只是在每次提到文件夹中的文件名时添加
folder/
。您可以通过GNU-make使用模式规则(如果您使用GNUmake)和$^
来简化它,以避免重复所有依赖项型
这些使用每个规则中定义的单个字符“helper”变量:
$@
当前规则的目标$^
当前规则的依赖项$<
当前规则的第一个依赖项ibps3vxo2#
$^和$@在简单的word中
范例:
字符串
$^
平均值:右参数(在示例中为Test.cpp)$@
平均值:左侧参数(在示例中为Test.o)同样的事情,如果你有两个或更多的参数:
型
$^
= main.o message.o(正确的参数)$@
= output.exe(左侧参数)wmvff8tz3#
只是为了添加到@ChrisDodd上面的示例中,一个常见的约定是使用目标文件夹的变量,然后生成对象列表,如下所示:
字符串