前言
我们编译的相关工程目录如下:
- Main.cpp 源代码
- Project1.rc 资源文件
- resource.h 资源头文件定义
我们简单看下源代码Main.cpp 就是一个简单的带菜单的UI界面代码
编译cpp 为 obj
cl /c /EHsc Main.cpp
参数说明:/c编译不连接/EHsc 异常处理
上述命令会把cpp的中所有头文件展开,编译成obj汇编文件
头文件的寻找优先级:
如果是以#include<>引入的那么首先会在环境变量中查找。对应的环境遍历名为 include.
笔者环境变量输出图:
#include"" 首先会到当前编译的命令环境文件目录查找(比如你的工程在c:/project,那么会在c:/project下自动查找)
如果需要指定头文件位置请使用 -IXXXXXXX 参数,XXXX为头文件所在目录 如-IC:/project/includes.
编译rc文件
Project1.rc 文件是WIN32定义资源的文件,你可以使用rc编译器编译成后缀为xxx.res的文件
如下图
链接
link /subsystem:windows User32.lib Main.obj Project1.res
/subsystem:windows 告诉链接器生产一个win32界面程序User32.lib 由于我们使用了windows相关函数所以必须告诉编译器其编译后库文件
链接相关库文件位置说明:
如果没有说明具体的库文件位置那么将会将会从环境变量LIB从查找