用vs2017的cl.exe,linker.exe编译链接程序

环境变量设置

因不同电脑程序安装程序路径不同,添加环境变量大同小异,我是先安装的vs2017,后安装的MFC板块,可能略有不同,环境变量设置实际上就是为我们在命令行窗口运行程序时,将需要的.lib文件和.h文件加进去
可以参考我的环境变量设置
这是加在path环境变量的路径,看最后两条就行其余的是其他软件的路径
倒数第二条是vs安装目录下的
倒数第一条是c盘固定文件夹下的
在这里插入图片描述
新建名为 ilb 的环境变量,加入下列路径
在这里插入图片描述
新建名为include 的环境变量,加入下列路径
在这里插入图片描述

运行hello world程序

桌面新建文件,将后缀名改为,cpp
在这里插入图片描述

输入以下代码

#include<iostream>
using namespace std;
int main()
{
	cout << "hello world!" << endl;
	return 0;
}

win10下打开cmd命令行窗口
在这里插入图片描述
输入命令 cd Desktop 回车,当前操作目录改为桌面
在这里插入图片描述
输入命令 cl /c hello.cpp 回车
对hello.cpp进行编译,成功会生成.obj文件
在这里插入图片描述
此时桌面出现hello.obj文件
在这里插入图片描述
最后链接obj文件,生成exe文件

在这里插入图片描述
此时桌面生成.exe文件
在这里插入图片描述
最后直接在命令行ck输入 hello.exe
运行程序,下图出现 hello world! 程序运行成功
在这里插入图片描述

运行Windows API程序

Windows API程序源码:https://blog.csdn.net/xianyudewo/article/details/108750300.
该项目文件集如下:
在这里插入图片描述
看上去很复杂,但在vs工程项目下,只有两个源文件和一个rc文件。其余文件可以忽略
在这里插入图片描述
所以只需要编译两个cpp文件和一个rc文件,最后链接即可

编译

在这里插入图片描述

链接

出现如下错误,经查询,下列错误意为只有声明没有定义
在这里插入图片描述
解决方案:
在vs中打开该项目,选择项目->属性
在这里插入图片描述
选择链接器中的输入->附加依赖项中的.ilb文件,全部复制,粘贴到命令行窗口中
附加依赖项末尾有个奇奇怪怪的文件名,在命令行窗口中可以直接删掉,不影响后续操作

在这里插入图片描述
在这里插入图片描述

运行

输入 Win32Project1.exe 回车
在这里插入图片描述

运行MFC程序

在vs中新建一个基于对话框的MFC程序。具体操作:https://blog.csdn.net/xianyudewo/article/details/109026993
vs项目下可见,和Windows API程序差不多,这里是三个.cpp文件和一个.rc文件
在这里插入图片描述

编译

在这里插入图片描述

链接

在这里插入图片描述

运行

在这里插入图片描述

总结:

在编译链接过程中遇到很多问题,多得数不清,但在强大的百度帮助下,我都一一解决了,很有成就感,也很费时间,就是因为自己的专业知识不过关,涉猎方面也不够广。

我总结下我遇到的问题类型:
一、缺少.h和.lib文件
这种情况你必须学会利用强大的百度查一查这个文件位于哪一个文件夹下,然后吧相应的路径加入环境变量中,是.h文件就将路径加入include环境变量中,是.lib文件就将环境变量加入lib环境变量中。
或者你直接在电脑每个盘里搜索文件名,自行判断哪个文件夹是正确的(因为可能不唯一,版本差异或者电脑位数的问题,如我的就是x86,添加的都是x86的文件夹)
二、无法解析的外部符号
这个意思是有声明没定义,查看相应软件里的依赖库文件名,加上去就行,如果还不行就是问题一的类型
参考:
https://blog.csdn.net/qq_43279579/article/details/108851773.
https://bbs.csdn.net/topics/300118581?locationNum=9
https://blog.csdn.net/weixin_44078318/article/details/104861237
关于rc.exe的相关设置和介绍那篇博客突然找不到了

猜你喜欢

转载自blog.csdn.net/xianyudewo/article/details/109078567