管理员 发布的文章

重装win10系列: 修改系统的软件默认安装路径


1. 摘要

今天重新给电脑做了一下系统,把Users文件移到了D盘,这回也不占用C盘了,然后这不开始安装软件么,第一件事就下了一个Bandizip准备安装,默认安装路径【C:Program Files】,那不行啊,安装的软件也得进D盘,C盘得留着给重要的东西用。这个设置需要修改注册表。

2. 流程

1 . Win+R 打开运行
2 . 输入regedit打开注册表
3 . 在注册表中需要找到【HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion】,分别打开ProgramFilesDir和ProgramFilesDir (x86)的项,分别修改值为D:Program Files 和 D:Program Files (x86)。

批注 2022-07-03 215115.png
批注 2022-07-03 215752.png

4 . 正常安装软件(Bindizip)的时候默认路径就会改变

批注 2022-07-03 215910.png

3. 重装win10系列

  1. mbr修改gpt,采用uefi引导启动
  2. 激活Win10系统
  3. 修改Users目录至D盘
  4. 修改系统软件默认安装路径
  5. 安装所需软件

C++: cmath里的M_PI


1.摘要

项目开发中挺多需要pi这个东西的,例如弧度与角度的转换,然后自己还要去定义一个宏来使用,一整还冲突。其实cmath.h的头文件里就有关于pi的宏,还有pi/2、pi/4等

2.使用方法

#define _USE_MATH_DEFINES
#include <cmath>

3.补充说明

cmath.h中会包含corect_math_defines.h的相关定义。

    #define M_E        2.71828182845904523536   // e
    #define M_LOG2E    1.44269504088896340736   // log2(e)
    #define M_LOG10E   0.434294481903251827651  // log10(e)
    #define M_LN2      0.693147180559945309417  // ln(2)
    #define M_LN10     2.30258509299404568402   // ln(10)
    #define M_PI       3.14159265358979323846   // pi
    #define M_PI_2     1.57079632679489661923   // pi/2
    #define M_PI_4     0.785398163397448309616  // pi/4
    #define M_1_PI     0.318309886183790671538  // 1/pi
    #define M_2_PI     0.636619772367581343076  // 2/pi
    #define M_2_SQRTPI 1.12837916709551257390   // 2/sqrt(pi)
    #define M_SQRT2    1.41421356237309504880   // sqrt(2)
    #define M_SQRT1_2  0.707106781186547524401  // 1/sqrt(2)

4.注意事项

在头部添加使用2中的使用方法还要注意一下位置,位置不一样也会报找不到的错。
屏幕截图 2022-07-01 143923.png
这样处理才能使用成功。和奇怪,具体也不知道为啥,如果把iostream放在第一位就不能用了。


CMake:用add_subdirectory()添加外部项目文件夹


需求

正常情况下我们的项目各个子项目都在一个总的项目根目录下,但这次就需要使用外部的文件夹, 一个求解器文件夹(不动其代码),一个测试用例的相关项目,测试用例调用求解器内部代码进行相关测试。

处理过程

add_subdirectory命令,可以将指定的文件夹加到build任务列表中。下面是将与当前项目平级的一个目录下的子目录用add_subdirectory命令加进来的CMakelists.txt脚本片段 :

add_subdirectory(../test/test)

然后执行CMakeList.txt脚本时报错了:

屏幕截图 2022-06-13 114712.png

报错原因也很明确,因为要添加的这个文件夹不是当前项目的子目录。最后一句指明了方向:要指定一个外部的文件夹必须显式指定。
但怎么显式指定?
下面是add_subdirectory命令的官方说明:

官方文档

add_subdirectory有一个 binary_dir参数,这个参数用来指定source_dir在输出文件夹中的位置,如果没有指定的时候,就用source_dir的值。
如果要添加外部文件夹,binary_dir就必须指定。所以上面的代码修改如下:

add_subdirectory(../test/test test.out)

再执行CMakeList.txt正常通过,下图红框标出就是cassdk子目录下CMakeLists.txt的执行输出。


C++: 自定义错误码类,实现归拢错误信息。


需求

求解器老报错,还得找错误在哪,其实大多数都是一些属性没配置才导致报错,在报错的地方throw出来就能知道具体是哪些错误,把错误编码,这样就能把类似宏这种的返回编码,然后根据编码能查到具体错误信息。

用法

// 定义相关错误
static Error E_NOT_FOUND_PTR(100010001,"未发现指针");

// 响应相关错误
throw E_NOT_FOUND_PTR;

// 查询相关错误并输出
try{
    // 生产代码
} catch (Error info) {
    cout << "[ERROR] [" << info << "] [" << Error::GetErrorString(info) << "]" << endl;
}

类代码

#include <string>
#include <map>
#include <cassert>

class Error
{
public:
    Error(int value, const std::string& str)
    {
        m_value = value;
        m_message =    str;
        #ifdef _DEBUG
        ErrorMap::iterator found = GetErrorMap().find(value);
        if (found != GetErrorMap().end())
        assert(found->second == m_message);
        #endif
        GetErrorMap()[m_value] = m_message;
    }

    operator int() { return m_value; }

private:
    int m_value;
    std::string m_message;

    typedef std::map<int, std::string> ErrorMap;
    static ErrorMap& GetErrorMap()
    {
        static ErrorMap errMap;
        return errMap;
    }

public:

    static std::string GetErrorString(int value)
    {
        ErrorMap::iterator found = GetErrorMap().find(value);
        if (found == GetErrorMap().end())
        {
            assert(false);
            return "";
        } else {
            return found->second;
        }
    }
};

Ubuntu:安装zsh终端


一、安装zsh

sudo apt-get install zsh

二、安装 oh my zsh

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

关于oh my zsh可以看如下的链接:https://ohmyz.sh/community.html
当然也可以通过

curl -L https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 

三、配置文件

3.1创建配置文件

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

3.2设置zsh为默认的shell

chsh -s /bin/zsh

此时重新启动Ubuntu即可享受新的终端。

四、其他

4.1修改主题

可以去https://github.com/ohmyzsh/ohmyzsh/wiki/themes看看你喜欢什么主题,然后在.zshrc文件中进行更改。

4.2 自己写的一个主题

下载链接:ML.zip

主题截图:微信图片编辑_20220511211351.jpg

https://blog.csdn.net/yujia_666/article/details/115677068