2021年的vscode调用msvc来编译C/C++

2021-11-9 学长 编程

首先你得有vs2019并且安装了最基础的C语言编译环境也就是msvc

vs2019 的编译器是msvc

路径是C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC

而vscode 的code runner是调用gcc的

也就是说。。。

必须调用mingw

或者用c/c++那个编译器

根据这个里面写的

Configure Visual Studio Code for Microsoft C++

你得通过cmd来手动折腾生成个类似于项目文件的json文件

所以这就是微软卖vs年份酒的套路么???

我们就要败给万恶的小布尔乔亚了么???

(装了vc年份酒才有msvc的好不好)

所以要针对msvc专门改自定义命令

参见此文章

vscode+coderunner+MSVC测试cpp代码 - ibasaw - 博客园

cmd这招现在没这么好用了。。。

这文章是原创么???

这样的文章大多是从某G上抄来的

那我去某G上炒最新的给你就好了

==========================================================

很显然网上目前流行的都是原来

调用Developer Command Prompt for VS 2019

然后通过追加指令来形成obj并删除的套路来运行的

目前Developer PowerShell for VS 2019早已存在

所以思路就是直接调用ps

Configure coderunner for C++ Build Tools(MSVC) · Issue #330 · formulahendry/vscode-code-runner

根据上述思路

"code-runner.executorMap": {
"c": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process pwsh -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",
"cpp": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process pwsh -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",
},

384a17e6这个数字是根据你具体的

搜索中找到的

Developer PowerShell for VS 2019 右击打开所在位置,再右击属性

看到目标中的那串对应的实际位置和代码的

当然如果你想保留.obj可移除代码

del $fileNameWithoutExt.obj &&

问题是

他写的时候powershell可以省略pwsh,现在不可以了,具体看你系统。。。我的系统是win11

就得改成

"code-runner.executorMap": {

"c": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process powershell -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",

"cpp": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process powershell -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",

},

或者不要弹出运行在终端窗口就这么写

"code-runner.executorMap": {

"c": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; Clear-Host && cl $fileName && del $fileNameWithoutExt.obj && .\\$fileNameWithoutExt",

"cpp": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; Clear-Host && cl $fileName && del $fileNameWithoutExt.obj && .\\$fileNameWithoutExt",

},


json设置脚本自己用tab健对齐

具体json的位置是文件-首选项设置-设置

然后搜code runner

点击任意一个编辑settings.jason

然后再原来的打括号里添加上面的编码

还有就是得打开

"code-runner.runInTerminal": true,

也就是再终端运行


评论(0) 浏览(1212)

windows 11 正式版

2021-10-23 学长 软件

如果微软长期没给你推最新版windows 的升级推送

直接下载windows 11的iso文件安装把

https://www.microsoft.com/zh-cn/software-download/windows11

评论(0) 浏览(1010)

组策略 找不到演示’TargetReleaseVersion’中引用的策略元素’ProductVersionld’

2021-10-23 学长 软件

打开

文件管理器

C:\Windows\PolicyDefinitions

找到WindowsUpdate.admx

右键属性-安全-高级

所有者改为自己目前登录的这个用户

然后给这个用户完全控制的权限


用文本编辑器打开文件

找到


<policy name="TargetReleaseVersion"


前面加上注释符号 <!-- 变成

 <!-- <policy name="TargetReleaseVersion"


找到

        <text id="TargetReleaseVersionId" valueName="TargetReleaseVersionInfo" maxLength="4" />
        </elements>
    </policy>

加上备注结束符号变成

        <text id="TargetReleaseVersionId" valueName="TargetReleaseVersionInfo" maxLength="4" />
        </elements>
    </policy>-->

简单删除该文件会导致组策略中对应系统更新的模板消失

评论(2) 浏览(5021)

元组增减

2021-9-14 学长 编程

元组删除 = lambda 原元组,要删除的位: 原元组[:要删除的位]+原元组[要删除的位+1:]

元组增加 = lambda 原元组,要增加的位,增加的元素: 原元组[:要增加的位]+(增加的元素,)+原元组[要增加的位:]


一句话完成。。。

评论(0) 浏览(1096)

compact 指令

2021-9-11 学长 软件

也就是我的电脑属性文件压缩的那个的CMD指令

COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [/EXE[:algorithm]]

        [/CompactOs[:option] [/WinDir:dir]] [filename [...]]

  /C        压缩指定的文件。将对目录进行标记,
            以便压缩随后添加的文件,除非 /EXE
            已指定。
  /U        解压缩指定的文件。将对目录进行标记,
            这样就不会压缩随后添加的文件。如果指定了
            /EXE,则只有压缩为可执行文件的文件才会
            进行解压缩;如果省略此项,则只有 NTFS 压缩
            文件才会进行解压缩。
  /S        对给定目录和所有子目录中的文件
            执行指定的操作。默认 "dir" 是
            当前目录。
  /A        显示包含隐藏属性或系统属性的文件。默认情况下,
            这些文件将被省略。
  /I        即使在出现错误后也继续执行
            指定的操作。默认情况下,COMPACT 将在遇到错误
            时停止。
  /F        对所有指定文件强制执行压缩操作,即使
            是已压缩的文件也是如此。默认情况下,将跳过
            已压缩的文件。
  /Q        仅报告最重要的信息。
  /EXE      使用针对经常读取但未修改的可执行文件
            优化的压缩。支持的算法是:
            XPRESS4K  (最快速) (默认)
            XPRESS8K
            XPRESS16K
            LZX       (压缩程度最高)
  /CompactOs 设置或查询系统的压缩状态。支持的选项包括:
             query  - 查询系统的压缩状态。
             always - 压缩所有 OS 二进制文件并将系统状态设置为"压缩",
                      这种状态一直保持到管理员更改它。
             never  - 解压缩所有 OS 二进制文件并将系统状态设置为"未压缩",
                      这种状态一直保持到管理员更改它。
  /WinDir    在查询脱机 OS 时与 /CompactOs:query 一起使用。指定
             Windows 所安装到的目录。
  filename   指定模式、文件或目录。

评论(0) 浏览(1064)

素数 质数 python 判断 lambda

2021-8-18 学长 编程

素数=lambda 数字: all(数字%循环变量!=0 for 循环变量 in range(2,int(数字**.5)+1))&(数字>1)


调用方法:

素数(数字)

理论上运行效率比def的要低一些因为没有跳出循环

但是比不用开平方的运行效率要高

能过浙大python的4-4 哥德巴赫猜想

评论(0) 浏览(941)

完全禁止系统更新

2021-7-3 学长 软件

组策略

win+r

gpedit.msc

配置自动更新

对已登录的用户,将不会执行自动重新引导

设置自动更新选项


如果没有组策略

用这个工具

https://www.sordum.org/downloads/?st-windows-update-blocker


用这个工具能开启组策略

https://www.majorgeeks.com/files/details/add_gpedit_msc_with_powershell.html


评论(0) 浏览(955)

windows 11恢复windows 10样式开始菜单

2021-7-2 学长 软件

注册表

WIN+R

regedit

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\

新建DWORD (32-bit) 值

Start_ShowClassicMode

值为1

======================================================

然后就是居左居中的问题

个性化>>任务栏

也就是任务栏上右击的设置

Taskbar behaviors

目前还没完全汉化。。。

Taskbar alignment 把居中改成左

评论(0) 浏览(967)

镜像文件安装windows 11 绕开tpm检查

2021-7-1 学长 软件

到了提示不可以的界面

shift+F10

打开命令提示符

输入regedit

HKEY_LOCAL_MACHINE\SYSTEM\Setup

新建两个DWord

BypassTPMCheck=dword:00000001
BypassSecureBootCheck=dword:00000001
就是十六进制的1

不需要学某个视频中的输入7个0然后输入1。。。

重启电脑就可以继续安装了

评论(1) 浏览(2052)

GPD Win Max通过windows 11测试

2021-7-1 学长 软件

win max 开启 TPM
win max 开启 BitLocker
需要更改系统的组策略。。。所以得是企业版或者专业版的windows
在网上搜到类似的文章是reddit在去年win max 刚发布的时候有人问
Win Max:Enable TPM 2.0?


具体方法是
win + R gpedit.msc 开启组策略
家庭版没有这个功能
组策略中先设置如下


本地计算机策略 -> 计算机配置 -> 管理模板 -> 系统 -> 设备安装 -> 设备安装限制


防止安装与这些设备 ID 匹配的设备 -> 已禁用


阻止安装使用匹配这些设备安装程序类的驱动程序的设备- >启用
阻止安装使用驱动这些设备安装程序类的设备:
{d48179be-ec20-11d1-b6b8-00c04fa372a7}
{7ebefbc0-3200-11d2-b4c2-00a0C9697d07}
{c06ff265-ae09-48f0-812c-16753d7cba83}
{6bdd1fc1-810f-11d0-bec7-08002be2092f}

也适用于已经安装的匹配设备 -> Enabled


本地计算机策略 -> 计算机配置 -> 管理模板 -> 系统 -> 内核 DMA 保护


与内核 DMA 保护不兼容的外部设备的
枚举策略 ->启用枚举策略 -> 全部阻止



本地计算机策略 -> 计算机配置 -> 管理模板 -> Windows 组件 -> BitLocker 驱动器加密


选择驱动器加密方法和密码强度(Windows 10 [Version 1511] and later)-> Enabled
选择操作系统驱动器的加密方法-> XTS-AES 256-bit
选择固定数据驱动器的加密方法-> XTS-AES 256 -bit
选择可移动数据驱动器的加密方法 -> AES-CBC 256 位


当这台计算机被锁定时禁用新的 DMA 设备 -> 启用


为您的组织提供唯一标识符 -> 启用


===================================================================
上面这个设置貌似并不关键
重启win max 多次按del进入bios
Security tab -> Secure Boot ->
Change Secure Boot to Enabled
如果不可以就F3恢复默认设置再开启
F4保存并重启

如果还是没动静多试几次BIOS重置。。。


windows11泄露版的下载地址(现在已经有正式预览版)

https://www.ozabc.com/it/499721.html

windows 11 检测软件 PC Health Check 电脑健康状况检查工具
https://aka.ms/GetPCHealthCheckApp
很神奇很多国内的网站非得让别人关注其公众号才能下载。。。

评论(0) 浏览(1660)

手机版 | RSS | FEED

苏ICP备16066175号