ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

VS2019安装配置与freeglut开发环境搭建实战

VS2019安装配置与freeglut开发环境搭建实战 好几年前我用 VS2019 帮一个学弟调过 freeglut 的 OpenGL 作业从安装到跑通前后折腾了差不多三个晚上最后发现卡住他的不是代码而是头文件路径和链接库改了没生效。从那以后我意识到一件事VS2019 这东西装好不难但想让环境顺滑地跑起来中间有不少文档里根本不会写的弯弯绕绕。这篇文章就把我这些年反复重装、帮人排错积累下来的完整过程写出来从下载安装到建项目到离线包兜底再到 freeglut 配置一篇走完。1. 为什么还在折腾 VS2019一通分析后的最终结论1.1 到底是谁还在用 VS2019我知道很多人一开口就是“都什么年代了为什么不直接上 VS2022”。但现实是大学教材、网课、老项目、实验室的祖传代码普遍还是 VS2019 的底子。尤其 C/C 方向的课程设计老师给的工程文件是 .sln打开一看注释里写着 “Visual Studio Version 16”用新版强行打开也不是不行但偶尔会碰到平台工具集版本警告、Windows SDK 版本不匹配这类破事。对多数只想好好写作业、认真跑项目的人来说VS2019 就是最省心的那个版本。另一个现实原因在国内特别明显不少教学视频录制于 2019 到 2021 年之间界面截图、选项位置全是 VS2019 的样子。你拿 VS2022 去对着操作菜单布局不太一样老师说的某个勾选项你死活找不到很打击学习积极性。所以我的建议是如果是跟着教程走教程用什么版本你就装什么版本不要在这个时候追求所谓的新版本。1.2 那 VS2019 会不会太老不够用从功能上讲VS2019 支持 C14、C17 都很完整C20 的主要特性可用做课程设计、毕业设计、中小型项目毫无压力。Python 工作负载、C# 桌面开发、ASP.NET 网站开发也都是完整支持的。很多人担心的兼容性问题主要集中在 Windows 11 上跑 VS2019这个我实测过只要记得装一个最新版 Windows SDK安装器里可选日常编译运行没有问题。VS2019 和 VS2022 另一个关键区别是 VS2022 只有 64 位版本而 VS2019 是 32 位进程。这一点听起来不起眼但在编译一些老库、老驱动项目时VS2019 的兼容性反而更有优势。工业软件、仪器厂商 SDK 的官方示例很多只给 VS2019 的版本。所以别觉得用旧版丢人很多时候是项目选你不是你选项目。2. 安装准备第一步下载器与版本选择的那些细节2.1 下载渠道只有一条官方下载 VS2019 最稳妥的方式是打开 Visual Studio 官网的旧版本下载页面找到 Visual Studio 2019 一栏点下载。官网会根据系统架构自动给你一个 bootstrapper 文件也就是所谓的“引导安装器”文件名类似vs_community__xxx.exe或vs_enterprise__xxx.exe后面那串字母数字是随机数每次生成可能都不一样不用管它。我不建议去各种第三方软件站下载所谓的“完整版”“绿色版”“破解版”。VS2019 本身有社区版个人开发者、学生学习、开源项目使用完全免费根本不需要破解。第三方渠道拿到的安装包要么版本陈旧要么被改过东西你折腾半天装完发现各种缺组件再来找我排错得不偿失。2.2 社区版、专业版、企业版怎么选这个问题几乎每周都有人问。我直接给结论个人学习、写作业、做开源项目选Community社区版永久免费功能上对个人用户没有实质阉割。公司商业开发根据规模购买Professional专业版或Enterprise企业版功能差集中在测试工具、架构分析、代码审查这类团队协作功能上。学生身份的话可以走微软的 Azure for Education 或学校正版化渠道免费拿专业版甚至企业版许可证但操作起来要学校域名邮箱验证不如直接社区版干脆。2.3 产品密钥问题一次性说清楚看到热搜词里有“vs2019产品密钥”我必须专门说说这个因为这地方坑过不少人。社区版安装时根本不需要输入任何密钥装上就是完整功能它只是要求你注册登录微软账号而已。第一次启动会让你登录你可以登录也可以暂时跳过但建议顺手注册登录一下因为登录后可以同步设置、激活开发者许可证别在这个环节浪费太多心理博弈。专业版和企业版才需要密钥但微软官方也提供了免费试用期通常是 30 天。试用期结束后弹窗提示输入密钥你可以在 Visual Studio 官网的订阅服务页面购买或者通过企业管理员分配。网上那些所谓“永久密钥”“破解补丁”我从来不用也劝你别用。社区版免费就完事了非要拿企业版密钥炒来炒去既没意义又不安全。3. 安装过程全拆解从点下安装到跑通第一行代码3.1 安装器界面长什么样一开始别乱勾运行下载好的vs_community.exe会先弹出一个用户账户控制窗口点“是”之后进入一个比较简洁的界面。这里很多人会急一上来就点“安装”结果默认只装了基础的 .NET 桌面开发C 的东西毛都没有。所以我每次装 VS2019第一步永远是先看清楚左侧的“工作负载”选项卡。工作负载其实就是一组组件打包方案按用途给你分好类。对大多数学生和开发者我建议这样选用 C/C 写课程设计、算法题、OpenGL勾选“使用 C 的桌面开发”用 Python勾选“Python 开发”用 C# 写 WinForms / WPF 桌面程序勾选“.NET 桌面开发”做网页后端勾选“ASP.NET 和 Web 开发”这几个是最常用的。如果你不确定以后用哪个那就先只勾“使用 C 的桌面开发”加“Python 开发”这两个覆盖面最广后续缺什么随时可以打开 Visual Studio Installer 再补装不需要重装整个软件。3.2 右边的组件列表到底要不要细看勾选工作负载后右侧会出现这个方案包含的组件清单。默认情况下安装器帮你勾好了所选工作负载的“必需组件”和“推荐组件”那些可选组件默认不勾。这里有一个非常关键的习惯要告诉你不要为了省事把所有可选组件都勾上也不要不看清单直接一股脑装。磁盘空间大、网络好的当我没说但如果你 C 盘紧张或网速一般建议在这一步做一次精简。以“使用 C 的桌面开发”为例默认会包含 MSVC v142 编译器、Windows 10 SDK、C 标准库、C 调试工具等核心组件。我个人的经验下列可选组件按需添加“C CMake tools for Windows”如果做跨平台项目或接触 CMake 工程一定要勾只用 .sln 工程的话可以不勾。“适用于 Windows 的 C Clang 工具”玩 Clang 插件开发才需要平时可忽略。“MSVC v142 - VS 2019 C x64/x86 生成工具”部分老项目需要如果默认没勾但编译时报找不到cl.exe再回来补装。3.3 安装位置别把 30GB 全部塞进 C 盘VS2019 本体加各种组件随随便便 15~30GB。C 盘是 SSD 且空间充足那就默认路径没问题如果 C 盘空间紧张像很多人单位电脑 C 盘只有 120GB 那种一定在安装界面的“安装位置”标签页里改路径。VS2019 的安装位置有个特殊性它把“Visual Studio IDE”和“下载缓存”和“共享组件、SDK、工具”分成了三个目录。其中“下载缓存”指的是安装器下载的安装源文件这块体积最大完全可以放到其他盘。“共享组件”有些全局工具链比如 Windows SDK 本身就不在 VS 目录里改路径时留意它提示的“部分工具和 SDK 可能无法更改安装位置”之类的话属正常现象别慌。我的习惯路径是这样Visual Studio IDED:\Program Files\Microsoft Visual Studio\2019\Community下载缓存D:\VS2019Cache共享组件保持默认或者放到 D 盘一个固定位置改好路径后点“安装”剩下的就是等。这个环节根据你选的组件和网速半小时到两小时都有中间不要强关安装器。3.4 首次启动登录、主题、启动速度安装完成后系统大概率提示重启尤其是刚装完 Windows SDK 的时候别偷懒重启一下最省事。重启完打开开始菜单里的 Visual Studio 2019第一次启动会要求登录微软账号。登录之后进入初始化界面选开发设置和主题。这里很多人问“我该选哪个”如果你是 C 方向可以选“Visual C”主题选“深色”还是“浅色”全凭喜好。我个人一直用深色护眼是次要的主要是看代码高亮对比度舒服。此时你以为装好了其实不一定。建议先做一件事新建一个空白 C 控制台项目跑通一个 hello world确认工具链链路完整再正式开始干活。这个过程放到第五节讲。4. 离线安装包断网条件下的完整自救方案4.1 什么时候需要离线安装包教学机房、单位内网、宿舍只有校园网但进水了不是各种网络不稳定场景下直接从网上下载 VS2019 是一件让人血压飙升的事情。下载到一半断线、缓存校验失败、卡在某个组件上不动都是家常便饭。这时候离线安装包就是最优解。很多人一听到离线包就头大觉得那是大佬才会的骚操作实际上微软官方设计了一个叫--layout的命令行参数专门用来在联网机器上预下载所有安装文件然后打包带到没网的机器上安装。4.2 用--layout生成离线包的具体操作在联网正常的电脑上把下载好的vs_community.exe放进一个文件夹比如D:\vs2019_offline_builder然后以管理员身份打开命令提示符进入该目录执行vs_community.exe --layout D:\VS2019Offline --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended --lang zh-CN拆开解释一下参数--layout D:\VS2019Offline指定离线文件存储目录--add Microsoft.VisualStudio.Workload.NativeDesktop添加 C 桌面开发工作负载--add Microsoft.VisualStudio.Workload.ManagedDesktop添加 .NET 桌面开发C# 项目用按需加--includeRecommended包含每个工作负载的推荐组件建议带上--lang zh-CN中文语言包不带默认英文如果你想要完整版全部组件可以直接vs_community.exe --layout D:\VS2019Offline --lang zh-CN这样会把所有工作负载全部拉下来体积非常大80GB 以上一般没必要。我更推荐只拉自己用得到的那几个工作负载。命令执行后它会像在线安装一样下载文件但不会安装到系统。下载完成后再把D:\VS2019Offline整个文件夹拷贝到目标电脑上注意目录别改中文路径避免后续解析出问题。可以用移动硬盘或者 U 盘拷贝文件数量多拷贝过程要有耐心。4.3 离线机器上怎么装在没网的机器上进入离线包目录执行vs_community.exe --offline D:\VS2019Offline --wait --quiet --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --lang zh-CN这里--offline参数明确告诉安装器不要访问网络全部从本地取文件。--quiet表示静默安装不弹界面加--wait是为了让命令行等待安装结束再退出方便判断完成时机。如果你安装在服务器或机房这个命令特别实用。如果是个人电脑也可以不敲命令直接双击离线包目录下的vs_community.exe它会自动识别本地布局文件进入正常的图形化安装界面。很多朋友在这个地方有一个误区把离线包拷贝到目标电脑后直接在原来的文件夹里找到vs_setup.exe或者vs_community.exe双击安装结果提示要联网。原因是你执行错了文件。正确做法是在离线布局根目录运行然后选择“从本地布局安装”别让它自己上网找源。图形界面如果找不到这个选项就用上面那条带--offline参数的命令行。4.4 离线安装九成会遇到的坑我帮人做离线包踩过几个坑这里集中说一下安装到一半报“无法解析此远程名称”之类错误说明安装器还在尝试联网。检查是不是忘记加--offline参数或者双击的 exe 不是在布局根目录。安装日志里报某个 cab 包校验失败。大概率是 U 盘拷贝时文件损坏重新拷贝一次拷贝完可以校验一下文件大小。装完打开 VS 发现没有 C 编译器。你漏了--add Microsoft.VisualStudio.Workload.NativeDesktop纯离线包只装了 IDE 壳子。补装时也需要在离线模式下重新执行带--add的命令。离线包目录里如果有中文路径极少数组件在安装时会莫名失败。这个我不是危言耸听遇到过两次解决办法就是路径全英文。5. 跑通 C 项目从建工程到调试的完整链路5.1 新建项目模板选不对后面全是坑打开 VS2019首次启动后点“创建新项目”。这里的关键是不要选错模板。我们要新建的是控制台程序那就找“控制台应用”模板注意区分这几个“控制台应用”是 C 的控制台程序图标带 C 字样生成的是.vcxproj工程“空项目”也是一个 C 工程但不会给你生成入口函数的代码适合从零开始写“Windows 桌面向导”是带界面的桌面程序适合做 Win32 窗口如果要做 OpenGL 实验我通常选“空项目”然后自己添加.cpp文件。选“控制台应用”也没问题它会自动生成一个包含main()函数的 hello world 文件省事一点。5.2 Debug 和 Release、x86 和 x64一开始就要有概念工程创建完成后顶部的“解决方案配置”默认是 Debug平台默认是 x64。这里的学习成本看似小但很多人第一周就折在这里。Debug 模式包含调试信息编译出来的 exe 体积大、速度慢但可以打断点调试学习阶段一直用这个就行。Release 模式有优化体积小、速度快但调试信息被剥离逻辑崩溃时难以定位适合最终发布。x86表示编译为 32 位程序x64表示 64 位程序。如果后面配置 freeglut 这类第三方库32 位程序要用 32 位库64 位程序要用 64 位库混着用就是经典的 LNK2019 错误。我在教学里会反复强调一句话先看右上角配置管理器再谈写代码。这个习惯能帮你省掉后面至少一半的链接错误。5.3 从写到跑F5 和 CtrlF5 的区别写好代码后最基础的快捷键有两组F5开始调试运行。程序会在断点处停下来可以在“输出”窗口看到调试输出结束后会显示“进程已退出代码为 0”。CtrlF5直接运行不调试。程序跑完后如果是控制台程序窗口会停在“请按任意键继续”不会一闪而过。很多新手遇到“控制台窗口一闪而过”的问题就是直接点击了 exe或者用 F5 跑完后窗口自动关闭。最简单粗暴的办法是代码结尾加一句system(pause);或者在程序返回前读一个输入#include iostream int main() { std::cout Hello, VS2019! std::endl; std::cin.get(); // 等待一个回车窗口停住 return 0; }但我更推荐的还是用CtrlF5运行干净且不用改代码。5.4 断点调试救命技能写代码遇到逻辑问题别加一堆cout赌运气。在 VS2019 里点一下代码行左侧的灰色区域就会出现一个红色断点圆点。按 F5 启动调试程序会停在断点处。此时可以F10逐过程执行一跳一行不进入函数内部F11逐语句执行遇到函数会跳进去ShiftF5停止调试在“自动窗口”或“局部变量”窗口查看变量当前值鼠标悬停在变量上也能看到值甚至可以直接右键添加监视这个技能为什么单独拿出来说因为大多数初学 C 的人根本没有“用调试器找 bug”的概念出了错全靠让人帮忙看代码。VS2019 的调试器是它最强的部分之一学会它比会三四种语法都值钱。6. 让 VS2019 好用起来的几项关键设置6.1 界面显示深色主题、字体、行号VS2019 装好后默认是浅色主题首次启动初始化时可以选深色。如果当时选错了可以通过菜单“工具 - 选项 - 环境 - 常规”把“颜色主题”改成“深色”。字体方面推荐把文本编辑器默认字体设成 Consolas 或 Cascadia Mono字号 14 左右。打开“工具 - 选项 - 环境 - 字体和颜色”在“显示项”里选“纯文本”修改字体和大小这个设置对所有语言生效。行号大家经常找不着同样在“字体和颜色”下方附近选择一个开关选项勾选“显示行号”即可或者直接在菜单“工具 - 选项 - 文本编辑器 - C/C - 常规”拉到最下面勾选。任何编辑器都用带行号的版本排错时别人跟你说“第 42 行有问题”你没行号怎么聊。6.2 快捷键别死记先记五个VS2019 的快捷键上百个新手不需要全背。我实际带过很多刚上手的朋友以下五个高频快捷键先记住就够应付绝大多数场景CtrlK, CtrlD格式化整个文档。代码缩进乱成一锅粥时一键恢复整齐。CtrlK, CtrlC注释选中代码块。CtrlK, CtrlU取消注释。CtrlShiftB只编译不运行用来快速检查有没有语法错误。F12跳到定义处右键也有“转到定义”选项。阅读代码找函数特别快。快捷键这东西强行背不如多用一个月后自然就变成手指记忆了。6.3 智能提示不弹了怎么办VS2019 的 IntelliSense 偶尔会抽风特别是 C 工程刚建好头文件乱改路径之后。表现为弹出提示特别慢、或者干脆不弹。这时候先检查右下角是否显示“IntelliSense 正在更新”如果长时间没反应可以试试“工具 - 选项 - 文本编辑器 - C/C - 高级”把“自动完成”和“IntelliSense 成员列表”相关选项保持默认后执行一次“重置用户数据”或者重启 VS。另外一个真实有效的方法是删除工程目录下的.vs文件夹然后重新打开工程。这个文件夹存的是编辑器缓存经常因为异常关闭而损坏删掉后 VS 会重新生成。很多“提示卡顿”“跳转失效”的问题靠这招直接满血复活。7. freeglut 三方库配置实战从下载到跑通 OpenGL 窗口7.1 为什么专门讲 freeglut热搜词里藏着一个高频需求freeglut vs2019。如果你做 OpenGL 相关课程设计或自学图形学教材里十有八九用的是 GLUT 或 freeglut。但 GLUT 在 1998 年就停止维护了freeglut 是它的开源替代品两者 API 基本一致。问题是VS2019 里默认不包含 freeglut 的库文件和头文件你必须自己下载、配置、把路径告诉工程才能编译出能弹出图形窗口的程序。很多人的 OpenGL 学习进度就卡在这一步代码没问题差的是环境配置。7.2 下载和目录整理网上找 freeglut 的二进制包版本建议选最新的 3.x 版本直接下载对应 Windows 的 zip 包。解压后会看到include、lib、bin几个目录里面的GL文件夹放着freeglut.h、freeglut_ext.h、freeglut_std.h三个头文件lib目录下有多个子文件夹x64下是 64 位库x86下是 32 位库。我建议把整个解压后的目录放到一个稳定路径比如D:\SDK\freeglut不要放在桌面或下载文件夹以后删文件误伤了很麻烦。7.3 项目属性配置的完整路径配置 freeglut 的核心就是告诉 VS 三个位置头文件在哪、库文件在哪、链接哪个库。以 64 位 Debug 模式为例右键项目 - 属性顶部“配置”选“Debug”“平台”选“x64”“C/C - 常规 - 附加包含目录”添加D:\SDK\freeglut\include“链接器 - 常规 - 附加库目录”添加D:\SDK\freeglut\lib\x64“链接器 - 输入 - 附加依赖项”填freeglutd.lib应用、确定注意第 5 步的细节Debug 模式链接的是freeglutd.lib带个 dRelease 模式链接的是freeglut.lib。如果你调错成免费版编译时大概率报 LNK2019 无法解析外部符号Debug 和 Release 的库混用是我见过的高频错误。配置前确认右上角解决方案配置是“Debug、x64”因为附加依赖项是按配置区分的你在这套配置里改了别的配置不会跟着变。7.4 运行时的 DLL 问题编译链接通过F5 一运行有的机器会弹出一个“找不到 freeglut.dll”的报错。这是因为链接器只是把库的引用信息写进了 exe程序运行时还需要在系统里找到 DLL。解决方案有几种把bin\x64\freeglut.dll注意这是动态库复制到 exe 所在目录也就是工程目录下的x64\Debug\文件夹。把 DLL 所在目录加入系统 PATH 环境变量一劳永逸但对系统环境有污染。在项目属性里设置“调试 - 环境”填入PATHD:\SDK\freeglut\bin\x64;%PATH%只对当前工程生效。我个人最推荐第一种简单直接换机器编译也携带方便。很多教程里只讲了头文件和库目录不跟你说 DLL 的事导致新手链接成功后运行失败这是最常见的坑。7.5 验证 freeglut 是否配置成功配置完直接跑一个有 GLUT 主循环的代码验证比较科学#include GL/freeglut.h void display() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex2f(-0.5f, -0.5f); glVertex2f(0.5f, -0.5f); glVertex2f(0.0f, 0.5f); glEnd(); glFlush(); } int main(int argc, char** argv) { glutInit(argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(400, 300); glutCreateWindow(freeglut test); glutDisplayFunc(display); glutMainLoop(); return 0; }如果能在屏幕上弹出一个 400x300 的窗口并绘制一个三角形说明 freeglut 环境彻底搞定。如果弹不出窗口而是报链接错误回到项目属性逐项检查配置特别是平台是 x64 还是 Win32库文件名是不是 freeglutd.lib这两处占了 80% 的出错原因。8. 装完这些之后我建议你做一个备份这里说的备份是指把 VS2019 的离线安装布局、freeglut 的 include 和 lib 目录、以及一份写好了属性的工程配置文件放到一起做成你自己的开发环境套装。以后换电脑、重装系统、帮室友装机直接复制过去半小时恢复一套完整的 C 图形学开发环境。这比每次从头下载安装、再翻教程配 freeglut 要省心太多。我个人在实际操作中的一个小习惯是把 VS 工程里那几个.vcxproj配置文件做个模板里面预先写好了 freeglut 的包含目录和附加依赖项。新工程一拷贝属性全是现成的只需要按新项目的名字改一下文件名即可。这套流程是我吃了很多次“安装完、配完、忘记录”的亏之后得来的能少走不少弯路。最后再说一句如果你在配置过程中遇到跟本文对应不上的窗口或选项先确认你的 VS 版本确实是 2019因为 2017 和 2022 的设置面板布局都有变化网上很多教程其实混着讲。确定版本无误后大多数问题都能在“项目属性”这个主战场解决掉。
返回列表