网站首页 > 精选文章 正文
语言 CPP
前言
虽然 VSCodeC++ 编辑器非常受大家的欢迎,无论是大佬还是小白都说对其爱不释手... 我...用了一段时间后发现实在是麻烦,配置往往花费我大量时间。可以说真的是吃力不讨好(个人观点,不代表其他人)!所以,用了一段时间后我又默默的用起了自己的 HBuilderX ! 淦! HBuilderX 不是主力前端吗?额~是的,CPP在这里不是很受宠,但没关系啊(主要是真的好用)!CPP的基本语法还是支持的,再加上自己完善了一下“自定义CPP代码块”后更是如虎添翼!HBuilderX NB! 不过,有个最大的问题就是编译链接!因为 HBuilderX 本身并不是为CPP开发的,所以根本不会有这一功能,更苦的是连个插件都没得...一切都只能靠命令行! 经过一段时间的摸索,最后打算写一篇总结。力求简洁、明了! 不定期更新! 提示:文件结构如下
+-- demo.cpp
|
+-- demo.ico
|
+-- demo.rc
第一章 - 静态编译
手动编译:
- 打开 CMD 命令窗口;
- 执行命令 g++ -c demo.cpp -o step_one.o ;
- 执行命令 ar -cr libstep_two.a step_one.o ;
- 执行命令 g++ demo.cpp -L. -Istep_two -static -o release.exe ;
- 得到 release.exe 应用程序。
注释:
- 原理我不多说了,有兴趣的自行了解!力求简洁、明了!
- step_one 与 step_two 字符可替换;
- release.exe 为输出应用程序的名字;
批处理脚本:
::使用方法 - 直接将 demo.cpp 托入批处理运行即可,也可使用 CMD 命令传参数的方式执行。
@echo off
set start=%1
:get_o
if exist %1 (g++ -c %start% -o step_one.o) else (goto get_o)
:get_a
if exist .\o.o (ar -cr libstep_two.a step_one.o) else (goto get_a)
:get_exe
if exist .\liba.a (g++ %start% -L. -Istep_two -static -o release) else (goto get_exe)
:del
del DEL /F /A /Q step_one.o
del DEL /F /A /Q libstep_two.a
call release.exe
:end
第二章 - 自定义程序 ICO
手动操作:
- 在 demo.rc 文件中添加 id ICON "path/to/my.ico";
- 执行命令 windres demo.rc -O coff -o demo.res;
- 执行命令 g++ demo.cpp demo.res -o release.exe;
- 得到带 ICO 的应用程序。
注释:
- 原理大致为: 资源文件(.res) + 源文件(.cpp) =编译=> 带资源的应用程序(.exe);
- 第三步也可以使用静态编译:g++ -c demo.cpp -o step_one.o -> ar -cr libstep_two.a step_one.o -> g++ demo.cpp demo.res -L. -Istep_two -static -o release.exe。
批处理脚本:
还没写
第三章 - 添加版本信息
手动操作:
- 在 demo.rc 文件中添加
1 VERSIONINFO
FILEVERSION 1,0,0,0 // 文件版本
PRODUCTVERSION 1,0,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904E4" // 语言(修改前四位)
BEGIN
VALUE "CompanyName", "公司名"
VALUE "FileDescription", "文件描述"
VALUE "FileVersion", "1.0"
VALUE "InternalName", "内部名称"
VALUE "LegalCopyright", "版权"
VALUE "OriginalFilename", "原始文件名"
VALUE "ProductName", "产品名称"
VALUE "ProductVersion", "产品版本"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1252 // 翻译
END
END
- 执行命令 windres demo.rc -O coff -o demo.res;
- 执行命令 g++ demo.cpp demo.res -o release.exe;
- 得到带版本信息的应用程序。
注释:
- .RC 文件使用的是微软定义的脚本语言;
- 更改语言时需要同时更改 “语言” 和 “翻译” 两处内容。“语言” 行("080904E4")修改前四个数字;“翻译” 行(0x809)修改后三位数字。Example: 简体中文的 langID 为 0x0804修改“语言”行前四位为 “0804”;修改“翻译”行后三位为 “804”;修改“语言”信息为“简体中文”。
- .RC资源文件详情请参考MSDN。
- 原文:https://www.cnblogs.com/seafever/p/12660507.html
- 作者:海之恋SF
猜你喜欢
- 2025-06-10 10个看起来让你像devops高手的命令
- 2025-06-10 Go 程序员学 Zig 指南(上篇)(程序员 怎么学)
- 2025-06-10 Ollama使用指南【超全版】(ola的)
- 2025-06-10 vscode 运行java(vscode运行java显示无法加载主类)
- 2025-06-10 教你把多个视频合并成一个视频的方法
- 2025-06-10 无限使用Cursor,解决 Cursor Too many free trial accounts used on this
- 2025-06-10 vscode修改背景色(vscode修改背景图片)
- 2025-06-10 一款神奇的极客工具,用了永无 Bug
- 2025-06-10 使用awk命令5秒替换700M文件内容(awk替换空格)
- 最近发表
-
- Vue基础入门,第15节 一键页面换新衣,动态修改样式的3种方法
- uniapp Vue3.x组件库uview-vue3(uniapp用什么组件库)
- Vue3 样式绑定: 内联样式与Class属性的数组语法
- Vue2的样式(class和style)绑定(vue样式scoped)
- 前端开发,在项目中常用的css样式整理
- 前端必看!7 个 Vue3 性能优化实战技巧,让页面飞起来
- 前端也能玩转截图?uni-app + Vue3 实现页面快照功能
- Vue2 升级 Vue3 一文通关(vue-cli2.0升级3.0)
- Vue2的16种传参通信方式(vue有几种传参方式)
- 面试官:聊聊你知道的Vue与React的区别
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)