前言:
windows 环境的 cl 和 nmake 就相当于 Linux 环境的 gcc、g++ 和 make;linux 中可以在 Makefile 中写 gcc、g++ 语句,然后执行 make;同样的,在 windows中也可以新建 Makefile 文件,在里面写 cl 语句,最后使用 nmake
1. cl.exe 、nmake.exe 所在位置:
D:\install\VisualStudio2022_comm\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64
2. 代码目录结构:
test.cpp
math/
hsyMath.hpp
hsyMath.cpp
build/
Makefile
3. 完整代码:
1. test.cpp:
#include <iostream>
#include "./math/hsyMath.hpp"
int main(){
std::cout << "hello world" << std::endl;
int sum = add_hsy(100,200);
std::cout << sum << std::endl;
return 0;
}
2. hsyMath.hpp:
#ifndef HSY_MATH_HEAD
#define HSY_MATH_HEAD
// 在这里放置类声明、函数声明、宏定义等
int add_hsy( int a,int b );
#endif // HSY_MATH_HEAD
3. hsyMath.cpp:
#include "hsyMath.hpp"
int add_hsy( int a,int b ){
return a + b;
}
4. Makefile:
# 定义编译器和链接器选项
CC = cl.exe
CFLAGS = /I"D:\install\VisualStudio2022_comm\VC\Tools\MSVC\14.40.33807\include" \
/I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt"
LDFLAGS = /link libcpmt.lib kernel32.lib libucrt.lib
LIBDIRS = /LIBPATH:"D:\install\VisualStudio2022_comm\VC\Tools\MSVC\14.40.33807\lib\x64" \
/LIBPATH:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64" \
/LIBPATH:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64"
# 定义源文件和目标文件
SRCS = ../test.cpp ../math/hsyMath.cpp
OBJS = $(SRCS:.cpp=.obj)
TARGET = test.exe
# 默认目标
all: $(TARGET)
# 链接目标
$(TARGET): $(SRCS)
$(CC) $(CFLAGS) $(SRCS) $(LDFLAGS) $(LIBDIRS) /Fo"$(TARGET)"
# 清理目标(可选)
clean:
del $(TARGET) $(OBJS)
5. 在 Makefile 目录下执行 nmake命令:
6. 测试 test.exe:
ps:需要先将 :
D:\install\VisualStudio2022_comm\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64
添加大系统环境变量 PATH 中。