first commit
This commit is contained in:
commit
3de0fd9fcb
34
.gitignore
vendored
Normal file
34
.gitignore
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# ---> C++
|
||||||
|
# Prerequisites
|
||||||
|
*.d
|
||||||
|
|
||||||
|
# Compiled Object files
|
||||||
|
*.slo
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
|
||||||
|
# Precompiled Headers
|
||||||
|
*.gch
|
||||||
|
*.pch
|
||||||
|
|
||||||
|
# Compiled Dynamic libraries
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
*.dll
|
||||||
|
|
||||||
|
# Fortran module files
|
||||||
|
*.mod
|
||||||
|
*.smod
|
||||||
|
|
||||||
|
# Compiled Static libraries
|
||||||
|
*.lai
|
||||||
|
*.la
|
||||||
|
*.a
|
||||||
|
*.lib
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.app
|
||||||
|
|
309
clang-format.txt
Normal file
309
clang-format.txt
Normal file
@ -0,0 +1,309 @@
|
|||||||
|
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
# https://www.bbsmax.com/A/VGzlMjexJb/
|
||||||
|
# 链接:https://www.cnblogs.com/oloroso/p/14699855.html
|
||||||
|
# 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
|
||||||
|
Language: Cpp
|
||||||
|
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
|
||||||
|
# 访问说明符(public、private等)的偏移
|
||||||
|
AccessModifierOffset: -4
|
||||||
|
|
||||||
|
# 左括号(左圆括号、左尖括号、左方括号)后的对齐: Align, DontAlign, AlwaysBreak(总是在左括号后换行)
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
|
||||||
|
# 连续赋值时,对齐所有等号
|
||||||
|
AlignConsecutiveAssignments: true
|
||||||
|
|
||||||
|
# 连续声明时,对齐所有声明的变量名
|
||||||
|
AlignConsecutiveDeclarations: true
|
||||||
|
|
||||||
|
# 对齐连续位域字段的风格
|
||||||
|
# AlignConsecutiveBitFields: AcrossEmptyLinesAndComments
|
||||||
|
|
||||||
|
# 对齐连续宏定义的风格
|
||||||
|
# AlignConsecutiveMacros: Consecutive #clang-format 12
|
||||||
|
|
||||||
|
# 用于在使用反斜杠换行中对齐反斜杠的选项
|
||||||
|
AlignEscapedNewlines: Left
|
||||||
|
|
||||||
|
# 水平对齐二元和三元表达式的操作数
|
||||||
|
AlignOperands: Align
|
||||||
|
|
||||||
|
# 对齐连续的尾随的注释
|
||||||
|
AlignTrailingComments: true
|
||||||
|
|
||||||
|
# 如果函数调用或带括号的初始化列表不适合全部在一行时
|
||||||
|
# 允许将所有参数放到下一行,即使BinPackArguments为false
|
||||||
|
AllowAllArgumentsOnNextLine: true
|
||||||
|
|
||||||
|
# 允许构造函数的初始化参数放在下一行
|
||||||
|
AllowAllConstructorInitializersOnNextLine: true
|
||||||
|
|
||||||
|
# 允许函数声明的所有参数在放在下一行
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: true
|
||||||
|
|
||||||
|
|
||||||
|
# 允许短的块放在同一行(Always 总是将短块合并成一行,Empty 只合并空块)
|
||||||
|
AllowShortBlocksOnASingleLine: Empty
|
||||||
|
|
||||||
|
# 允许短的case标签放在同一行
|
||||||
|
AllowShortCaseLabelsOnASingleLine: true
|
||||||
|
|
||||||
|
# 允许短的函数放在同一行: None, InlineOnly(定义在类中), Empty(空函数), Inline(定义在类中,空函数), All
|
||||||
|
AllowShortFunctionsOnASingleLine: Inline
|
||||||
|
|
||||||
|
# 允许短的if语句保持在同一行
|
||||||
|
AllowShortIfStatementsOnASingleLine: true
|
||||||
|
|
||||||
|
# 允许短的循环保持在同一行
|
||||||
|
AllowShortLoopsOnASingleLine: true
|
||||||
|
|
||||||
|
# 总是在定义返回类型后换行(deprecated)
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
|
||||||
|
# 总是在返回类型后换行: None, All, TopLevel(顶级函数,不包括在类中的函数),
|
||||||
|
# AllDefinitions(所有的定义,不包括声明), TopLevelDefinitions(所有的顶级函数的定义)
|
||||||
|
|
||||||
|
# 函数声明返回类型后是否换行(None 自动,All全部,TopLevel...)
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
|
||||||
|
# 总是在多行string字面量前换行
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
|
||||||
|
# 总是在template声明后换行
|
||||||
|
AlwaysBreakTemplateDeclarations: false
|
||||||
|
|
||||||
|
# false表示函数实参要么都在同一行,要么都各自一行
|
||||||
|
BinPackArguments: false
|
||||||
|
|
||||||
|
# false表示所有形参要么都在同一行,要么都各自一行
|
||||||
|
BinPackParameters: true
|
||||||
|
|
||||||
|
# 大括号换行,只有当 BreakBeforeBraces 设置为Custom时才有效
|
||||||
|
BraceWrapping:
|
||||||
|
# case 语句后面
|
||||||
|
AfterCaseLabel: true
|
||||||
|
# class定义后面
|
||||||
|
AfterClass: true
|
||||||
|
# 控制语句后面
|
||||||
|
AfterControlStatement: Never
|
||||||
|
# enum定义后面
|
||||||
|
AfterEnum: true
|
||||||
|
# 函数定义后面
|
||||||
|
AfterFunction: true
|
||||||
|
# 命名空间定义后面
|
||||||
|
AfterNamespace: false
|
||||||
|
# ObjC定义后面
|
||||||
|
AfterObjCDeclaration: false
|
||||||
|
# struct定义后面
|
||||||
|
AfterStruct: true
|
||||||
|
# union定义后面
|
||||||
|
AfterUnion: true
|
||||||
|
# extern 导出块后面
|
||||||
|
AfterExternBlock: false
|
||||||
|
# catch之前
|
||||||
|
BeforeCatch: true
|
||||||
|
# else之前
|
||||||
|
BeforeElse: true
|
||||||
|
# 缩进大括号(整个大括号框起来的部分都缩进)
|
||||||
|
IndentBraces: false
|
||||||
|
# 空函数的大括号是否可以在一行
|
||||||
|
SplitEmptyFunction: false
|
||||||
|
# 空记录体(struct/class/union)的大括号是否可以在一行
|
||||||
|
SplitEmptyRecord: false
|
||||||
|
# 空名字空间的大括号是否可以在一行
|
||||||
|
SplitEmptyNamespace: false
|
||||||
|
|
||||||
|
# 在二元运算符前换行: None(在操作符后换行), NonAssignment(在非赋值的操作符前换行), All(在操作符前换行)
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
|
||||||
|
# 在大括号前换行: Attach(始终将大括号附加到周围的上下文), Linux(除函数、命名空间和类定义,与Attach类似),
|
||||||
|
# Mozilla(除枚举、函数、记录定义,与Attach类似), Stroustrup(除函数定义、catch、else,与Attach类似),
|
||||||
|
# Allman(总是在大括号前换行), GNU(总是在大括号前换行,并对于控制语句的大括号增加额外的缩进), WebKit(在函数前换行), Custom
|
||||||
|
# 注:这里认为语句块也属于函数
|
||||||
|
|
||||||
|
# 大括号的换行规则
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
|
||||||
|
# 三元运算操作符换行位置(?和: 在新行还是尾部)
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
|
||||||
|
# 在构造函数的初始化列表的逗号前换行
|
||||||
|
BreakConstructorInitializersBeforeComma: false
|
||||||
|
|
||||||
|
# 要使用的构造函数初始化式样式
|
||||||
|
BreakConstructorInitializers: BeforeComma
|
||||||
|
|
||||||
|
# 每行字符的限制,0表示没有限制
|
||||||
|
ColumnLimit: 100
|
||||||
|
|
||||||
|
# 描述具有特殊意义的注释的正则表达式,它不应该被分割为多行或以其它方式改变
|
||||||
|
# CommentPragmas: ''
|
||||||
|
|
||||||
|
# 如果为true,则连续的名称空间声明将在同一行上。如果为false,则在新行上声明每个名称空间。
|
||||||
|
CompactNamespaces: false
|
||||||
|
|
||||||
|
# 构造函数的初始化列表要么都在同一行,要么都各自一行
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
|
||||||
|
# 构造函数的初始化列表的缩进宽度
|
||||||
|
ConstructorInitializerIndentWidth: 4
|
||||||
|
|
||||||
|
# 延续的行的缩进宽度
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
|
||||||
|
# 去除C++11的列表初始化的大括号{后和}前的空格
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
|
||||||
|
# 继承最常用的指针和引用的对齐方式
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
|
||||||
|
# 关闭格式化
|
||||||
|
DisableFormat: false
|
||||||
|
|
||||||
|
# 自动检测函数的调用和定义是否被格式为每行一个参数(Experimental)
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
|
||||||
|
# 如果为true,则clang格式会为短名称空间添加缺少的名称空间结尾注释,并修复无效的现有名称结束注释
|
||||||
|
FixNamespaceComments: true
|
||||||
|
|
||||||
|
# 需要被解读为foreach循环而不是函数调用的宏
|
||||||
|
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
|
||||||
|
|
||||||
|
# 对#include进行排序,匹配了某正则表达式的#include拥有对应的优先级,匹配不到的则默认优先级为INT_MAX(优先级越小排序越靠前),
|
||||||
|
# 可以定义负数优先级从而保证某些#include永远在最前面
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
||||||
|
Priority: 2
|
||||||
|
- Regex: '^(<|"(gtest|isl|json)/)'
|
||||||
|
Priority: 3
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 1
|
||||||
|
|
||||||
|
# 缩进case标签
|
||||||
|
IndentCaseLabels: false
|
||||||
|
|
||||||
|
# 要使用的预处理器指令缩进样式
|
||||||
|
IndentPPDirectives: AfterHash
|
||||||
|
|
||||||
|
# 缩进宽度
|
||||||
|
IndentWidth: 4
|
||||||
|
|
||||||
|
# 函数返回类型换行时,缩进函数声明或函数定义的函数名
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
|
||||||
|
# 保留在块开始处的空行
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
|
||||||
|
# 开始一个块的宏的正则表达式
|
||||||
|
MacroBlockBegin: ''
|
||||||
|
|
||||||
|
# 结束一个块的宏的正则表达式
|
||||||
|
MacroBlockEnd: ''
|
||||||
|
|
||||||
|
# 连续空行的最大数量
|
||||||
|
MaxEmptyLinesToKeep: 10
|
||||||
|
|
||||||
|
# 命名空间的缩进: None, Inner(缩进嵌套的命名空间中的内容), All
|
||||||
|
# NamespaceIndentation: Inner
|
||||||
|
|
||||||
|
# 使用ObjC块时缩进宽度
|
||||||
|
ObjCBlockIndentWidth: 4
|
||||||
|
|
||||||
|
# 在ObjC的@property后添加一个空格
|
||||||
|
ObjCSpaceAfterProperty: false
|
||||||
|
|
||||||
|
# 在ObjC的protocol列表前添加一个空格
|
||||||
|
ObjCSpaceBeforeProtocolList: true
|
||||||
|
|
||||||
|
# 在call(后对函数调用换行的penalty
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 2
|
||||||
|
|
||||||
|
# 在一个注释中引入换行的penalty
|
||||||
|
PenaltyBreakComment: 300
|
||||||
|
|
||||||
|
# 第一次在<<前换行的penalty
|
||||||
|
PenaltyBreakFirstLessLess: 120
|
||||||
|
|
||||||
|
# 在一个字符串字面量中引入换行的penalty
|
||||||
|
PenaltyBreakString: 1000
|
||||||
|
|
||||||
|
# 对于每个在行字符数限制之外的字符的penalty
|
||||||
|
PenaltyExcessCharacter: 1000000
|
||||||
|
|
||||||
|
# 对每一个空格缩进字符的penalty(相对于前导的非空格列计算)
|
||||||
|
# PenaltyIndentedWhitespace: 0
|
||||||
|
|
||||||
|
# 将函数的返回类型放到它自己的行的penalty
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 120
|
||||||
|
|
||||||
|
# 指针和引用的对齐: Left, Right, Middle
|
||||||
|
PointerAlignment: Left
|
||||||
|
|
||||||
|
# 允许重新排版注释
|
||||||
|
ReflowComments: true
|
||||||
|
|
||||||
|
# 允许排序#include
|
||||||
|
SortIncludes: true
|
||||||
|
|
||||||
|
# 允许排序 using 声明顺序
|
||||||
|
SortUsingDeclarations: false
|
||||||
|
|
||||||
|
# 在C风格类型转换后添加空格
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
|
||||||
|
# 在逻辑非操作符(!)之后插入一个空格
|
||||||
|
SpaceAfterLogicalNot: false
|
||||||
|
|
||||||
|
# 在 template 关键字后插入一个空格
|
||||||
|
SpaceAfterTemplateKeyword: false
|
||||||
|
|
||||||
|
# 定义在什么情况下在指针限定符之前或之后放置空格
|
||||||
|
# SpaceAroundPointerQualifiers: Before
|
||||||
|
|
||||||
|
# 在赋值运算符之前添加空格
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
|
||||||
|
# 左圆括号之前添加一个空格: Never, ControlStatements, Always
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
|
||||||
|
# 空格将在基于范围的for循环冒号之前被删除
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
|
||||||
|
# [ 前是否添加空格(数组名和[之间,Lambdas不会受到影响)
|
||||||
|
# 连续多个 [ 只考虑第一个(嵌套数组,多维数组)
|
||||||
|
SpaceBeforeSquareBrackets: false
|
||||||
|
|
||||||
|
# 在空的圆括号中添加空格
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
|
||||||
|
# 在尾随的评论前添加的空格数(只适用于//)
|
||||||
|
SpacesBeforeTrailingComments: 3
|
||||||
|
|
||||||
|
# 在尖括号的<后和>前添加空格
|
||||||
|
SpacesInAngles: false
|
||||||
|
|
||||||
|
# 在容器(ObjC和JavaScript的数组和字典等)字面量中添加空格
|
||||||
|
SpacesInContainerLiterals: false
|
||||||
|
|
||||||
|
# 在C风格类型转换的括号中添加空格
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
|
||||||
|
# 如果为true,将在If/for/switch/while条件括号前后插入空格。
|
||||||
|
SpacesInConditionalStatement: false
|
||||||
|
|
||||||
|
# 在圆括号的(后和)前添加空格
|
||||||
|
SpacesInParentheses: false
|
||||||
|
|
||||||
|
# 在方括号的[后和]前添加空格,lamda表达式和未指明大小的数组的声明不受影响
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
|
||||||
|
# 标准: Cpp03, Cpp11, Auto
|
||||||
|
Standard: Cpp11
|
||||||
|
|
||||||
|
# tab宽度
|
||||||
|
TabWidth: 4
|
||||||
|
|
||||||
|
# 使用tab字符: Never, ForIndentation, ForContinuationAndIndentation, Always
|
||||||
|
UseTab: Never
|
124
clang-tidy.txt
Normal file
124
clang-tidy.txt
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
readability-delete-null-pointer:建议使用 delete 而不是 delete[] 来释放空指针。
|
||||||
|
readability-deleted-default:提醒添加显式的 = default 或 = delete 来明确声明默认的或者删除的特殊成员函数。
|
||||||
|
readability-inconsistent-declaration-parameter-name:在不同的声明中参数名称不一致时给出警告。
|
||||||
|
readability-make-member-function-const:建议将不修改类成员的函数标记为 const。
|
||||||
|
readability-misleading-indentation:提示缩进可能会误导阅读代码的意图。
|
||||||
|
readability-non-const-parameter:建议将不修改参数值的函数参数声明为 const。
|
||||||
|
readability-redundant-control-flow:发现冗余的控制流结构,建议简化代码。
|
||||||
|
readability-redundant-declaration:警告多余的变量或函数声明。
|
||||||
|
readability-redundant-function-ptr-dereference:提示不必要的函数指针解引用。
|
||||||
|
readability-redundant-smartptr-get:发现多余的智能指针的 .get() 调用。
|
||||||
|
readability-redundant-string-cstr:发现多余的字符串转换为 C 风格字符串的操作。
|
||||||
|
readability-redundant-string-init:警告多余的字符串初始化。
|
||||||
|
readability-simplify-subscript-expr:建议简化数组下标表达式。
|
||||||
|
readability-static-accessed-through-instance:警告通过实例访问静态成员。
|
||||||
|
readability-static-definition-in-anonymous-namespace:在匿名命名空间中定义静态变量时给出警告。
|
||||||
|
readability-string-compare:建议使用字符串操作函数而不是直接使用运算符进行比较。
|
||||||
|
readability-uniqueptr-delete-release:建议使用 reset() 而不是 release() 来释放 std::unique_ptr。
|
||||||
|
readability-use-anyofallof:建议使用 C++17 的 std::any_of 或 std::all_of 算法。
|
||||||
|
performance-implicit-conversion-in-loop:警告循环中的隐式类型转换可能影响性能。
|
||||||
|
performance-inefficient-algorithm:提示可能存在效率低下的算法使用。
|
||||||
|
performance-inefficient-string-concatenation:发现效率低下的字符串拼接操作。
|
||||||
|
performance-inefficient-vector-operation:提示可能效率低下的向量操作。
|
||||||
|
performance-move-const-arg:建议在函数参数传递时使用 std::move 来移动 const 对象。
|
||||||
|
performance-move-constructor-init:提示在构造函数初始化列表中使用移动语义。
|
||||||
|
performance-no-automatic-move:建议禁止自动移动语义,需要显式使用 std::move。
|
||||||
|
performance-noexcept-move-constructor:建议将移动构造函数声明为 noexcept,以便优化。
|
||||||
|
performance-trivially-destructible:标识可以标记为 trivially destructible 的类型。
|
||||||
|
performance-type-promotion-in-math-fn:警告数学函数中可能的类型提升。
|
||||||
|
performance-unnecessary-copy-initialization:提示不必要的拷贝初始化操作。
|
||||||
|
performance-unnecessary-value-param:警告可能不必要的值传递参数。
|
||||||
|
portability-simd-intrinsics:识别可能与 SIMD 指令集相关的代码,这可能不具备跨平台移植性。
|
||||||
|
readability-avoid-const-params-in-decls:建议避免在函数声明中使用 const 参数。
|
||||||
|
readability-const-return-type:建议将返回类型声明为 const。
|
||||||
|
readability-container-size-empty:提示使用容器的 empty() 函数来检查容器是否为空,而不是使用 size()。
|
||||||
|
readability-convert-member-functions-to-static:建议将不修改对象状态的成员函数改为静态函数。
|
||||||
|
modernize-shrink-to-fit:建议使用 shrink_to_fit() 来减小容器的容量,以节省内存。
|
||||||
|
modernize-unary-static-assert:建议使用一元静态断言(static_assert)代替传统的 assert。
|
||||||
|
modernize-use-auto:推荐使用 auto 类型推断,以减少代码冗余和提高可读性。
|
||||||
|
modernize-use-bool-literals:建议使用布尔字面值 true 和 false 代替 0 和 1。
|
||||||
|
modernize-use-emplace:推荐使用容器的 emplace 函数代替 push_back 或 insert。
|
||||||
|
modernize-use-equals-default:建议使用 = default 来声明默认的特殊成员函数。
|
||||||
|
modernize-use-equals-delete:建议使用 = delete 明确删除特殊成员函数。
|
||||||
|
modernize-use-nodiscard:建议在可能的情况下使用 [[nodiscard]] 标记函数,以便提醒调用者检查返回值。
|
||||||
|
modernize-use-noexcept:建议使用 noexcept 来标记不会抛出异常的函数。
|
||||||
|
modernize-use-nullptr:建议使用 C++11 的 nullptr 关键字代替 NULL。
|
||||||
|
modernize-use-override:建议在派生类中使用 override 关键字来标记重写的函数。
|
||||||
|
modernize-use-transparent-functors:建议使用透明函数对象代替手动构造函数对象。
|
||||||
|
modernize-use-uncaught-exceptions:建议使用 std::uncaught_exceptions() 来替代 std::uncaught_exception()。
|
||||||
|
mpi-buffer-deref 和 mpi-type-mismatch:这两个参数是针对 MPI(Message Passing Interface)库的规则,用于检查缓冲区解引用和类型不匹配的问题。
|
||||||
|
openmp-use-default-none:建议在 OpenMP 指令中显式指定 default(none),以确保线程安全性。
|
||||||
|
performance-faster-string-find:优化字符串查找操作以提高性能。
|
||||||
|
performance-for-range-copy:优化循环中对于范围迭代器的复制操作。
|
||||||
|
misc-new-delete-overloads:建议同时重载 new 和 delete 运算符以实现自定义的内存分配和释放方式。
|
||||||
|
misc-no-recursion:提示避免递归调用,可能会导致栈溢出和性能问题。
|
||||||
|
misc-non-copyable-objects:建议标记不可复制的类为 delete,以防止意外的复制。
|
||||||
|
misc-throw-by-value-catch-by-reference:建议异常抛出时使用值,而捕获异常时使用引用,以避免异常对象切片问题。
|
||||||
|
misc-unconventional-assign-operator:识别并提醒使用了非传统的赋值操作符。
|
||||||
|
misc-uniqueptr-reset-release:建议使用 reset() 替代 release() 来释放 std::unique_ptr。
|
||||||
|
modernize-avoid-bind:建议使用 lambda 表达式代替 std::bind。
|
||||||
|
modernize-concat-nested-namespaces:提示合并嵌套的命名空间,以提高代码的可读性。
|
||||||
|
modernize-deprecated-headers 和 modernize-deprecated-ios-base-aliases:识别并提醒使用了已弃用的头文件和 I/O 流别名。
|
||||||
|
modernize-loop-convert:建议使用现代化的循环语法替代传统的循环语句。
|
||||||
|
modernize-make-shared 和 modernize-make-unique:建议使用 std::make_shared 和 std::make_unique 来创建智能指针。
|
||||||
|
modernize-pass-by-value:建议将按值传递的函数参数修改为按引用传递,以避免不必要的拷贝。
|
||||||
|
modernize-raw-string-literal:建议使用原始字符串字面量(raw string literals)来提高字符串的可读性。
|
||||||
|
modernize-redundant-void-arg:警告冗余的 void 参数。
|
||||||
|
modernize-replace-auto-ptr:建议将已弃用的 std::auto_ptr 替换为更安全的智能指针。
|
||||||
|
modernize-replace-disallow-copy-and-assign-macro:建议使用 delete 关键字禁用拷贝和赋值操作,而不是宏。
|
||||||
|
modernize-replace-random-shuffle:建议使用 std::shuffle 替代 std::random_shuffle。
|
||||||
|
modernize-return-braced-init-list:建议使用大括号初始化列表(braced-init-list)来返回对象,以提高代码的清晰度和一致性。
|
||||||
|
cert-dcl21-cpp:避免不正确的使用逗号运算符分隔的声明。
|
||||||
|
cert-dcl58-cpp:确保不同的成员变量使用不同的类型。
|
||||||
|
cert-err34-c:避免使用不存在的指针。
|
||||||
|
cert-err52-cpp:避免将一个标量赋值给一个不兼容的类型。
|
||||||
|
cert-err60-cpp:在空语句块中使用注释来提醒代码的维护者。
|
||||||
|
cert-flp30-c:避免使用函数指针执行非函数类型的对象。
|
||||||
|
cert-msc50-cpp 和 cert-msc51-cpp:关于 C++ 中对象的析构和构造的安全性准则。
|
||||||
|
cert-str34-c:避免在字符串拷贝函数中出现缓冲区溢出。
|
||||||
|
cppcoreguidelines-interfaces-global-init:警告全局初始化的接口。
|
||||||
|
cppcoreguidelines-narrowing-conversions:避免窄化转换。
|
||||||
|
cppcoreguidelines-pro-type-member-init:建议在构造函数中对所有成员变量进行初始化。
|
||||||
|
cppcoreguidelines-pro-type-static-cast-downcast:建议使用静态转换来进行向下转型。
|
||||||
|
cppcoreguidelines-slicing:提示有可能出现对象切割(slicing)的地方。
|
||||||
|
google-default-arguments 和 google-explicit-constructor:关于 Google C++ 编码规范中默认参数和显式构造函数的规则。
|
||||||
|
google-runtime-operator:Google C++ 编码规范中关于运算符的规则。
|
||||||
|
hicpp-exception-baseclass 和 hicpp-multiway-paths-covered:关于异常类基类和多路径覆盖的 HIC++ 规则。
|
||||||
|
misc-misplaced-const:警告误放的 const。
|
||||||
|
bugprone-sizeof-container 和 bugprone-sizeof-expression:在容器或表达式上使用 sizeof 可能导致 bug 的检测。
|
||||||
|
bugprone-spuriously-wake-up-functions:检测可能误唤醒线程的函数。
|
||||||
|
bugprone-string-constructor 和 bugprone-string-integer-assignment:检测字符串构造函数和整数赋值可能带来的潜在问题。
|
||||||
|
bugprone-string-literal-with-embedded-nul:发现在字符串字面值中嵌入空字符可能带来问题的情况。
|
||||||
|
bugprone-suspicious-enum-usage:检测可疑的枚举使用情况。
|
||||||
|
bugprone-suspicious-include:发现不合适的头文件引入。
|
||||||
|
bugprone-suspicious-memset-usage 和 bugprone-suspicious-memory-comparison:检测可能有问题的 memset 使用和内存比较。
|
||||||
|
bugprone-suspicious-missing-comma 和 bugprone-suspicious-semicolon:检测可能缺少逗号或分号的地方。
|
||||||
|
bugprone-suspicious-string-compare:发现可疑的字符串比较。
|
||||||
|
bugprone-suspicious-realloc-usage:检测可能不正确使用 realloc 的地方。
|
||||||
|
bugprone-swapped-arguments:检测参数错误排序的情况。
|
||||||
|
bugprone-terminating-continue 和 bugprone-throw-keyword-missing:检测不良的 continue 使用和可能缺少 throw 关键字的情况。
|
||||||
|
bugprone-too-small-loop-variable 和 bugprone-undefined-memory-manipulation:发现循环变量过小和潜在未定义的内存操作。
|
||||||
|
bugprone-undelegated-constructor:检测未委托的构造函数。
|
||||||
|
bugprone-unhandled-self-assignment:检测可能未处理的自赋值操作。
|
||||||
|
bugprone-unused-raii 和 bugprone-unused-return-value:发现未使用的 RAII 对象和返回值。
|
||||||
|
bugprone-use-after-move 和 bugprone-virtual-near-miss:检测移动后使用和潜在的虚函数近似错误。
|
||||||
|
bugprone-argument-comment:发现参数注释可能不正确的情况。
|
||||||
|
bugprone-assert-side-effect:检测断言中可能引起副作用的代码。
|
||||||
|
bugprone-bad-signal-to-kill-thread:发现线程杀死信号可能有问题的情况。
|
||||||
|
bugprone-branch-clone:发现可能会造成冗余分支的代码。
|
||||||
|
bugprone-copy-constructor-init:检测复制构造函数中可能的初始化错误。
|
||||||
|
bugprone-dangling-handle:发现悬空的句柄或引用。
|
||||||
|
bugprone-dynamic-static-initializers:检测可能会引发静态初始化问题的动态初始化。
|
||||||
|
bugprone-fold-init-type:发现在初始化中可能导致折叠类型的情况。
|
||||||
|
bugprone-forward-declaration-namespace:检测可能导致前置声明命名空间的情况。
|
||||||
|
bugprone-forwarding-reference-overload 和 bugprone-move-forwarding-reference:检测传递引用相关的错误。
|
||||||
|
bugprone-inaccurate-erase:发现可能不准确的 erase() 操作。
|
||||||
|
bugprone-incorrect-roundings 和 bugprone-integer-division:检测不正确的舍入和整数除法。
|
||||||
|
bugprone-lambda-function-name:警告 lambda 表达式中未命名的函数。
|
||||||
|
bugprone-macro-parentheses 和 bugprone-macro-repeated-side-effects:检测宏使用中可能存在的问题。
|
||||||
|
bugprone-misplaced-operator-in-strlen-in-alloc 和 bugprone-misplaced-pointer-arithmetic-in-alloc:检测在分配内存时可能存在的字符串长度或指针算术错误。
|
||||||
|
bugprone-misplaced-widening-cast:发现可能放置不当的宽化转换。
|
||||||
|
bugprone-multiple-statement-macro:发现多个语句的宏。
|
||||||
|
bugprone-no-escape 和 bugprone-not-null-terminated-result:检测逃逸问题和可能未以空字符结尾的结果。
|
||||||
|
bugprone-parent-virtual-call:发现可能会出现问题的父类虚函数调用。
|
||||||
|
bugprone-posix-return 和 bugprone-reserved-identifier:检测 POSIX 返回错误和保留标识符使用的问
|
11
csharp.txt
Normal file
11
csharp.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
1.多选文件夹
|
||||||
|
using Microsoft.WindowsAPICodePack.Dialogs;
|
||||||
|
|
||||||
|
CommonOpenFileDialog dia = new CommonOpenFileDialog();
|
||||||
|
dia.IsFolderPicker = true;
|
||||||
|
dia.Multiselect = true;
|
||||||
|
|
||||||
|
if (dia.ShowDialog() == CommonFileDialogResult.Ok)
|
||||||
|
{
|
||||||
|
var data = dia.FileNames.ToList();
|
||||||
|
}
|
44
database.txt
Normal file
44
database.txt
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
///////////////////// mysql ///////////////////////////
|
||||||
|
《环境Debian系列安装mariadb》
|
||||||
|
sudo apt install mariadb-server
|
||||||
|
这条命令可以初始化mysql,删除匿名用户,设置root密码等等....
|
||||||
|
sudo mysql_secure_installation
|
||||||
|
|
||||||
|
1.输入当前密码,初次安装后是没有密码的,直接回车
|
||||||
|
2.询问是否使用 'unix_socket' 进行身份验证: n
|
||||||
|
3.为 root 设置密码:y
|
||||||
|
4.输入 root 的新密码: root
|
||||||
|
5.确认输入 root 的新密码: root
|
||||||
|
6.是否移除匿名用户,这个随意,建议删除: y
|
||||||
|
7.拒绝用户远程登录,这个建议开启:n
|
||||||
|
8.删除 test 库,可以保留:n
|
||||||
|
9.重新加载权限表:y
|
||||||
|
|
||||||
|
【远程配置】
|
||||||
|
use mysql;
|
||||||
|
检索用户
|
||||||
|
select host,user from user;
|
||||||
|
创建一个远程用户,可以直接给Root用户开远程,但是不建议生产环境这么干
|
||||||
|
create user '远程用户账户'@'%' identified by '密码';
|
||||||
|
grant all on *.* to '远程用户账户'@'%';
|
||||||
|
select host,user from user;再次检索用户
|
||||||
|
flush privileges;刷新权限
|
||||||
|
|
||||||
|
【检查是否仅本地访问】
|
||||||
|
netstat -an | grep 3306
|
||||||
|
如果是127.0.0.1:3306即为仅本地
|
||||||
|
vim /etc/mysql/mysql.conf.d/mysqld.cnf/50-server.cnf
|
||||||
|
或者
|
||||||
|
vim /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||||
|
将127.0.0.1那行注释。
|
||||||
|
|
||||||
|
《MacOS安装Mysql》
|
||||||
|
mac上的mysql安装不要用命令行安装,很多问题,去官网下载安装。
|
||||||
|
密码重置:
|
||||||
|
(1)先停止mysql服务(在设置中)也可以sudo /usr/local/mysql/support-files/mysql.server stop
|
||||||
|
(2)cd /usr/local/mysql/bin
|
||||||
|
(3)sudo su
|
||||||
|
(4)./mysqld_safe --skip-grant-tables &
|
||||||
|
(5)再开一个窗口cd到同样位置 sudo su,然后 ./mysql
|
||||||
|
(6)ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
|
||||||
|
(7) FLUSH PRIVILEGES;
|
79
librarycompile.txt
Normal file
79
librarycompile.txt
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
1.Boost自行编译:
|
||||||
|
b2.exe link=shared runtime-link=shared threading=multi debug release --build-type=complete --prefix=C:\Bin\Boost address-model=64 install
|
||||||
|
或者:--layout=tagged
|
||||||
|
需要 -fPIC 项的,在 tools/build/src/tools/gcc.jam 大致 400 行位置, 加一个 static。
|
||||||
|
|
||||||
|
2.Qt6
|
||||||
|
configure.bat -prefix G:\QT6.5.3_x64\ -debug-and-release -opensource -skip qtwebengine -skip qtdoc
|
||||||
|
编译文档 Qt6文档编译后直接在源码下的doc中,不需要安装命令,使用:ninja docs
|
||||||
|
|
||||||
|
Qt5:
|
||||||
|
|
||||||
|
1.vs2019
|
||||||
|
2.qt源码
|
||||||
|
3.python3
|
||||||
|
4.perl https://download.qt.io/development_releases/prebuilt/perl/
|
||||||
|
5.qt的预编译llvm(编译文档)https://download.qt.io/development_releases/prebuilt/libclang/
|
||||||
|
|
||||||
|
编译
|
||||||
|
1.打开 vs2019 开发环境 cmd。
|
||||||
|
2.设置上面的 libclang 的环境变量,注意二进制的目录也要加上(成功过,第二次用clang17.0的没成功,不清楚为什么)。
|
||||||
|
set PATH=%PATH%;E:/libclang/bin;
|
||||||
|
set LLVM_INSTALL_DIR=E:/libclang
|
||||||
|
set QDOC_USE_STATIC_LIBCLANG=1
|
||||||
|
3.配置选项
|
||||||
|
configure -debug-and-release -confirm-license -opensource -platform win32-msvc -prefix "G:\\vs2019_Pro_dev\\3rd\\qt5.15.12" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -opengl dynamic -skip qtwebengine -nomake tests -no-compile-examples -mp
|
||||||
|
|
||||||
|
3.编译错误处理:
|
||||||
|
(3.1)编译报错E2512 功能测试宏的参数必须是简单标识符 的解决方法(qcompilerdetection.h)
|
||||||
|
参考链接:https://www.bilibili.com/read/cv7477923/
|
||||||
|
替换成如下内容:
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#if defined(__clang__)
|
||||||
|
#if QT_HAS_CPP_ATTRIBUTE(clang::fallthrough)
|
||||||
|
# define Q_FALLTHROUGH() [[clang::fallthrough]]
|
||||||
|
#endif
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
#if QT_HAS_CPP_ATTRIBUTE(gnu::fallthrough)
|
||||||
|
# define Q_FALLTHROUGH() [[gnu::fallthrough]]
|
||||||
|
#endif
|
||||||
|
#elif QT_HAS_CPP_ATTRIBUTE(fallthrough)
|
||||||
|
# define Q_FALLTHROUGH() [[fallthrough]]
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
(3.2)E1097未知特性 "no_init_all"
|
||||||
|
参考链接:https://blog.csdn.net/tiao_god/article/details/128691159
|
||||||
|
在
|
||||||
|
#if (_MSC_VER >= 1915)
|
||||||
|
#pragma warning(disable:4845) // __declspec(no_init_all) used but d1initall not set
|
||||||
|
#endif
|
||||||
|
(这一代码块是微软工程师用于在旧版本的VS中消除该错误提示的预编译头
|
||||||
|
虽然微软的工程师们宣称他们在最新的VS2019中已经修复了该错误,但是仍有很多人受到了该错误的困扰。)
|
||||||
|
后面添加:
|
||||||
|
#if (_MSC_VER >= 1915)
|
||||||
|
#define no_init_all deprecated
|
||||||
|
#endif
|
||||||
|
|
||||||
|
4.OpenSSL
|
||||||
|
https://strawberryperl.com/
|
||||||
|
https://www.nasm.us
|
||||||
|
|
||||||
|
perl Configure VC-WIN32 no-shared no-asm --debug --prefix=C:\menv\openssl-3.2.1\debug
|
||||||
|
如果是64位就是VC-WIN64A,no-shared不写就是动态库。
|
||||||
|
|
||||||
|
编译出来debug lib默认位MDd版,release lib默认为MT版
|
||||||
|
如果想把debug修改为MTd版本,执行完perl Configure命令后,修改openssl根目录下的makefile和configdata.pm文件,
|
||||||
|
把里面的/MDd 替换成 /MTd就OK了
|
||||||
|
原文链接:https://blog.csdn.net/skyf1y/article/details/107632975
|
||||||
|
|
||||||
|
5.OpenCV4.8.1
|
||||||
|
【32位环境】
|
||||||
|
set http_proxy=http://127.0.0.1:7890
|
||||||
|
set https_proxy=http://127.0.0.1:7890
|
||||||
|
set PATH=%PATH%;C:\menv\compileenv\nasm-2.16.01-win32\nasm-2.16.01;
|
||||||
|
cmake .. -G "Visual Studio 15 2017" -A win32 -DCMAKE_INSTALL_PREFIX:PATH=C:\menv\opencv2\v4.8.1
|
||||||
|
【64位环境】
|
||||||
|
set http_proxy=http://127.0.0.1:7890
|
||||||
|
set https_proxy=http://127.0.0.1:7890
|
||||||
|
set PATH=%PATH%;C:\menv\compileenv\nasm-2.16.01-win64\nasm-2.16.01;
|
||||||
|
cmake .. -G "Visual Studio 15 2017" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=C:\menv\opencv2\v4.8.1
|
22
linux.txt
Normal file
22
linux.txt
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
1.ssh配置免访问文件:authorized_keys
|
||||||
|
2.apt设置临时代理:
|
||||||
|
sudo apt-get -o Acquire::http::proxy="socks5h://192.168.0.102:7890/" install mariadb-server
|
||||||
|
3.CentOS7 升级GCC
|
||||||
|
(3.1) rpm -q gcc
|
||||||
|
(3.2) rpm -e [第二步查到的版本号]
|
||||||
|
如果
|
||||||
|
error: Failed dependencies:
|
||||||
|
gcc = 4.4.7-23.el6 is needed by (installed) gcc-c++-4.4.7-23.el6.x86_64
|
||||||
|
gcc = 4.4.4 is needed by (installed) libtool-2.2.6-15.5.el6.x86_64
|
||||||
|
rpm -e gcc-c++-4.4.7-23.el6.x86_64
|
||||||
|
rpm -e libtool-2.2.6-15.5.el6.x86_64
|
||||||
|
验证卸载:
|
||||||
|
[root@123 /]# gcc -v
|
||||||
|
-bash: /usr/bin/gcc: No such file or directory
|
||||||
|
[root@123 /]# g++ -v
|
||||||
|
-bash: /usr/bin/g++: No such file or directory
|
||||||
|
yum install centos-release-scl
|
||||||
|
yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++
|
||||||
|
scl enable devtoolset-11 bash
|
||||||
|
vim /etc/profile
|
||||||
|
PATH=$PATH::/opt/rh/devtoolset-11/root/usr/bin
|
187
nsis/RTM_Pack_V2.nsi
Normal file
187
nsis/RTM_Pack_V2.nsi
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
|
||||||
|
!define VERSION_NUM "v1.12.1"
|
||||||
|
|
||||||
|
!define DRIVE_D "G:"
|
||||||
|
!define SECOND_LEVEL_NAME "APack"
|
||||||
|
!define RUN_ENVIRONMENT_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\Environment"
|
||||||
|
!define INSTALL_NAME "RTM_x64"
|
||||||
|
!define INSTALL_DIR "C:\ZOYON\RTM"
|
||||||
|
!define SPLIT_TOOL_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\工程切分工具20230606\工程切分工具20230606"
|
||||||
|
!define RTM_CAPTURE_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\ReleaseXML5"
|
||||||
|
!define RTM_CAPTURE_XML "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\XML"
|
||||||
|
!define RTM_XML_CONFIG_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\RTMConfiger"
|
||||||
|
!define RTM_CHANNEL_SHOW_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\ChannelShow"
|
||||||
|
!define MONITOR_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\Monitor_RealseV20.12.1"
|
||||||
|
!define RTM_VERSION_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack"
|
||||||
|
|
||||||
|
; Build Unicode installer
|
||||||
|
Unicode True
|
||||||
|
; The default installation directory
|
||||||
|
InstallDir "${INSTALL_DIR}"
|
||||||
|
; Registry key to check for directory (so if you install again, it will
|
||||||
|
; overwrite the old one automatically)
|
||||||
|
InstallDirRegKey HKLM "Software\${INSTALL_NAME}" "${INSTALL_DIR}"
|
||||||
|
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
|
||||||
|
LangString Name ${LANG_SIMPCHINESE} "Simplified Chinese"
|
||||||
|
Name "${INSTALL_NAME}"
|
||||||
|
OutFile "x64采集软件安装包${VERSION_NUM}.exe"
|
||||||
|
|
||||||
|
RequestExecutionLevel admin
|
||||||
|
!include "${NSISDIR}\Contrib\Modern UI\System.nsh"
|
||||||
|
Page license
|
||||||
|
Page components
|
||||||
|
Page directory
|
||||||
|
Page instfiles
|
||||||
|
|
||||||
|
UninstPage uninstConfirm
|
||||||
|
UninstPage instfiles
|
||||||
|
|
||||||
|
; 停止指定的Windows服务
|
||||||
|
Function un.StopService
|
||||||
|
; 使用System plug-in的nsExec插件执行命令
|
||||||
|
; nsExec::ExecToLog 'net stop "CaptProcMgr"'
|
||||||
|
nsExec::Exec 'net stop "CaptProcMgr"'
|
||||||
|
nsExec::Exec 'net stop "CaptWarnMgr"'
|
||||||
|
Sleep 1000
|
||||||
|
FunctionEnd
|
||||||
|
Function StopService
|
||||||
|
; 使用System plug-in的nsExec插件执行命令
|
||||||
|
nsExec::Exec 'net stop "CaptProcMgr"'
|
||||||
|
nsExec::Exec 'net stop "CaptWarnMgr"'
|
||||||
|
Sleep 1000
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
; 停止指定的进程
|
||||||
|
Function un.StopProcess
|
||||||
|
; 使用System plug-in的nsExec插件执行命令
|
||||||
|
nsExec::ExecToLog 'taskkill /F /IM "Web.Master.exe"'
|
||||||
|
nsExec::ExecToLog 'taskkill /F /IM "NavExe.exe"'
|
||||||
|
FunctionEnd
|
||||||
|
Function StopProcess
|
||||||
|
; 使用System plug-in的nsExec插件执行命令
|
||||||
|
nsExec::ExecToLog 'taskkill /F /IM "Web.Master.exe"'
|
||||||
|
nsExec::ExecToLog 'taskkill /F /IM "NavExe.exe"'
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Section "卸载程序"
|
||||||
|
SectionIn RO
|
||||||
|
Call StopProcess
|
||||||
|
Call StopService
|
||||||
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
; 设定许可协议文本
|
||||||
|
LicenseData "${RTM_VERSION_DIR}\license.txt"
|
||||||
|
|
||||||
|
Section "切割工具"
|
||||||
|
SetOutPath "$INSTDIR\Tool"
|
||||||
|
File /nonfatal /r "${SPLIT_TOOL_DIR}\*.*"
|
||||||
|
CreateShortCut "$DESKTOP\切分工具.lnk" $INSTDIR\Tool\SplitTaskApp.exe "" \
|
||||||
|
"$INSTDIR\Tool\Kid Mac Os.ico" 0 SW_SHOWNORMAL "" "Split Tool"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "RTM配置工具"
|
||||||
|
SetOutPath "$INSTDIR\RTMConfiger"
|
||||||
|
File /nonfatal /r "${RTM_XML_CONFIG_DIR}\*.*"
|
||||||
|
CreateShortCut "$DESKTOP\RTM配置.lnk" $INSTDIR\RTMConfiger\RTMConfiger.exe "" \
|
||||||
|
"$INSTDIR\RTMConfiger\RTMConfiger.exe" 0 SW_SHOWNORMAL "" "采集软件RTM配置文件修改工具。"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "监控程序"
|
||||||
|
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk"
|
||||||
|
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk"
|
||||||
|
Delete "$STARTMENU\Web.Master.lnk"
|
||||||
|
Delete "$STARTMENU\NavExe.lnk"
|
||||||
|
Delete "$SMSTARTUP\Web.Master.lnk"
|
||||||
|
Delete "$SMSTARTUP\NavExe.lnk"
|
||||||
|
SetOutPath "$INSTDIR\Monitor"
|
||||||
|
File /nonfatal /r "${MONITOR_DIR}\*.*"
|
||||||
|
File "/oname=$INSTDIR\Monitor\dotnet-sdk-3.1.404-win-x64.exe" \
|
||||||
|
"${RUN_ENVIRONMENT_DIR}\dotnet-sdk-3.1.404-win-x64.exe"
|
||||||
|
SetOutPath "$INSTDIR\Monitor\Service"
|
||||||
|
CreateShortCut "$DESKTOP\Web.Master.lnk" $INSTDIR\Monitor\Service\Web.Master.exe "" \
|
||||||
|
"$INSTDIR\Monitor\Service\Web.Master.exe" 0 SW_SHOWNORMAL "" "Web监控服务器。"
|
||||||
|
;$STARTMENU
|
||||||
|
CreateShortCut "$SMSTARTUP\Web.Master.lnk" $INSTDIR\Monitor\Service\Web.Master.exe "" \
|
||||||
|
"$INSTDIR\Monitor\Service\Web.Master.exe" 0 SW_SHOWNORMAL "" "Web监控服务器。"
|
||||||
|
SetOutPath "$INSTDIR\Monitor\MainFrame"
|
||||||
|
CreateShortCut "$DESKTOP\ZyFrame.lnk" $INSTDIR\Monitor\MainFrame\App.ZyMainFrame.exe "" \
|
||||||
|
"$INSTDIR\Monitor\MainFrame\App.ZyMainFrame.exe" 0 SW_SHOWNORMAL "" "Web监控界面。"
|
||||||
|
; CreateShortCut "$DESKTOP\ZyMain.lnk" $INSTDIR\Monitor\MainFrame\ZyLaunch.exe "" \
|
||||||
|
; "$INSTDIR\Monitor\MainFrame\ZyLaunch.exe" 0 SW_SHOWNORMAL "" "Web监控界面。"
|
||||||
|
SetOutPath "$INSTDIR\Monitor\NavUIExe"
|
||||||
|
CreateShortCut "$SMSTARTUP\NavExe.lnk" $INSTDIR\Monitor\NavUIExe\NavExe.exe "" \
|
||||||
|
"$INSTDIR\Monitor\NavUIExe\NavExe.exe" 0 SW_SHOWNORMAL "" "NavExe 服务"
|
||||||
|
|
||||||
|
nsExec::Exec 'sc stop CaptWarnMgr'
|
||||||
|
nsExec::Exec 'sc delete CaptWarnMgr'
|
||||||
|
nsExec::Exec 'sc create CaptWarnMgr binPath="$INSTDIR\Monitor\Warn\WNS.Detection.exe" start=auto'
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "RTM采集软件"
|
||||||
|
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk"
|
||||||
|
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk"
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
File /nonfatal /r "${RTM_CAPTURE_DIR}\*.*"
|
||||||
|
CreateDirectory "$INSTDIR\Plugin"
|
||||||
|
File "/oname=$INSTDIR\Plugin\mysql-connector-odbc-8.0.29-winx64.msi" \
|
||||||
|
"${RUN_ENVIRONMENT_DIR}\mysql-connector-odbc-8.0.29-winx64.msi"
|
||||||
|
File "/oname=$INSTDIR\Plugin\强制关闭本机所有采集.bat" \
|
||||||
|
"${RUN_ENVIRONMENT_DIR}\强制关闭本机所有采集.bat"
|
||||||
|
File "/oname=$INSTDIR\Plugin\Dalsa库剔除.bat" \
|
||||||
|
"${RUN_ENVIRONMENT_DIR}\Dalsa库剔除.bat"
|
||||||
|
; File "/oname=$INSTDIR\Plugin\Basler库剔除.bat" \
|
||||||
|
; "${RUN_ENVIRONMENT_DIR}\Basler库剔除.bat"
|
||||||
|
ExecWait "$INSTDIR\BUS.RegisterPC.exe"
|
||||||
|
|
||||||
|
; CreateDirectory "$INSTDIR\RTM_Version"
|
||||||
|
; File "/oname=$INSTDIR\RTM_Version\version.txt" \
|
||||||
|
; "${RTM_VERSION_DIR}\version.txt"
|
||||||
|
|
||||||
|
; Write the installation path into the registry
|
||||||
|
WriteRegStr HKLM SOFTWARE\${INSTALL_NAME} "$INSTDIR" "$INSTDIR"
|
||||||
|
|
||||||
|
; Write the uninstall keys for Windows
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "DisplayName" "${INSTALL_NAME}"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "NoModify" 1
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "NoRepair" 1
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "Publisher" "ZOYON"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "DisplayVersion" "${VERSION_NUM}"
|
||||||
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "采集XML配置文件"
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
File /nonfatal /r "${RTM_CAPTURE_XML}\*.*"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "通道查看工具"
|
||||||
|
SetOutPath "$INSTDIR\ChannelShow"
|
||||||
|
File /nonfatal /r "${RTM_CHANNEL_SHOW_DIR}\*.*"
|
||||||
|
CreateShortCut "$DESKTOP\通道查看器.lnk" $INSTDIR\ChannelShow\ChannelDataShow.exe "" \
|
||||||
|
"$INSTDIR\ChannelShow\ChannelDataShow.exe" 0 SW_SHOWNORMAL "" "采集卡通道查看工具。"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "Uninstall"
|
||||||
|
; 卸载前停止服务和进程
|
||||||
|
Call un.StopService
|
||||||
|
Call un.StopProcess
|
||||||
|
RMDir /r /REBOOTOK "$INSTDIR"
|
||||||
|
Delete "$SMSTARTUP\Web.Master.lnk"
|
||||||
|
Delete "$SMSTARTUP\NavExe.lnk"
|
||||||
|
Delete "$DESKTOP\切分工具.lnk"
|
||||||
|
Delete "$DESKTOP\RTM配置.lnk"
|
||||||
|
Delete "$DESKTOP\通道查看器.lnk"
|
||||||
|
Delete "$DESKTOP\Web.Master.lnk"
|
||||||
|
Delete "$STARTMENU\Web.Master.lnk"
|
||||||
|
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk"
|
||||||
|
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk"
|
||||||
|
Delete "$STARTMENU\Web.Master.lnk"
|
||||||
|
Delete "$STARTMENU\NavExe.lnk"
|
||||||
|
Delete "$DESKTOP\ZyFrame.lnk"
|
||||||
|
Delete "$DESKTOP\ZyMain.lnk"
|
||||||
|
Delete "$INSTDIR\Uninstall.exe"
|
||||||
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}"
|
||||||
|
DeleteRegKey HKLM SOFTWARE\${INSTALL_NAME}
|
||||||
|
SectionEnd
|
44
nsis/SimpleInstaller.nsi
Normal file
44
nsis/SimpleInstaller.nsi
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
|
||||||
|
!define VERSION_NUM "v1.0.0"
|
||||||
|
|
||||||
|
!define PACK_DIR "G:\0516\pack\2"
|
||||||
|
!define INSTALL_NAME "sx-calendar"
|
||||||
|
!define INSTALL_DIR "$PROFILE\AppData\Local"
|
||||||
|
|
||||||
|
Unicode True
|
||||||
|
InstallDir "${INSTALL_DIR}"
|
||||||
|
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
|
||||||
|
LangString Name ${LANG_SIMPCHINESE} "Simplified Chinese"
|
||||||
|
Name "${INSTALL_NAME}"
|
||||||
|
OutFile "${INSTALL_NAME}_installer_${VERSION_NUM}_x64.exe"
|
||||||
|
|
||||||
|
RequestExecutionLevel user
|
||||||
|
!include "${NSISDIR}\Contrib\Modern UI\System.nsh"
|
||||||
|
Page license
|
||||||
|
Page components
|
||||||
|
Page directory
|
||||||
|
Page instfiles
|
||||||
|
|
||||||
|
UninstPage uninstConfirm
|
||||||
|
UninstPage instfiles
|
||||||
|
|
||||||
|
Section "Uninstaller"
|
||||||
|
SectionIn RO
|
||||||
|
WriteUninstaller "$INSTDIR\sx-calendar\Uninstall.exe"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
; É趨Ðí¿ÉÐÒéÎı¾
|
||||||
|
LicenseData "${PACK_DIR}\license\LICENSE"
|
||||||
|
|
||||||
|
Section "sx-calendar"
|
||||||
|
SetOutPath "$INSTDIR\sx-calendar"
|
||||||
|
File /nonfatal /r "${PACK_DIR}\*.*"
|
||||||
|
CreateShortCut "$DESKTOP\sx-calendar.lnk" $INSTDIR\sx-calendar\sx-calendar.exe "" \
|
||||||
|
"$INSTDIR\sx-calendar\sx-calendar.exe" 0 SW_SHOWNORMAL "" "sx-calendar"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "Uninstall"
|
||||||
|
Delete "$DESKTOP\sx-calendar.lnk"
|
||||||
|
RMDir /r /REBOOTOK "$INSTDIR"
|
||||||
|
Delete "$INSTDIR\Uninstall.exe"
|
||||||
|
SectionEnd
|
58
qtuse.txt
Normal file
58
qtuse.txt
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
1.Qmake配置说明
|
||||||
|
# 变量说明
|
||||||
|
$$PWD: 是 xx.pro 所在的目录。
|
||||||
|
$PWD: 是 exe,即可执行程序所在目录。
|
||||||
|
$$(PWD): 添加括号后,为家目录。
|
||||||
|
|
||||||
|
|
||||||
|
# moc、rcc、ui、obj泽文件的输出路径
|
||||||
|
Debug:MOC_DIR = $$PwD/tmp/debug
|
||||||
|
Debug:RCC_DIR = $$PWD/tmp/debug
|
||||||
|
Debug:UI_DIR = $$PwD/tmp/debug
|
||||||
|
Debug:OBJECTS_DIR = $$PWD/tmp/debug
|
||||||
|
|
||||||
|
Release:MOC_DIR = $$PwD/tmp/release
|
||||||
|
Release:RCC_DIR = $$PWD/tmp/release
|
||||||
|
Release:UI_DIR = $$PwD/tmp/release
|
||||||
|
Release:OBJECTS_DIR = $$PWD/tmp/release
|
||||||
|
|
||||||
|
# 应用程序输出路径
|
||||||
|
Debug:DESTDIR = $$PWD/bin/debug
|
||||||
|
Release:DESTDIR =$$PWD/bin/release
|
||||||
|
|
||||||
|
#动态库的依赖
|
||||||
|
|
||||||
|
Debug: LIBS += $$PWD/bin/debug/SerialPort.lib
|
||||||
|
Release:LIBS += $$PWD/bin/release/SerialPort.lib
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/component/SerialPortLib
|
||||||
|
Debug:LIBS += $$PWD/bin/debug/CommonDll.lib
|
||||||
|
Release:LIBS += $$PWD/bin/release/CommonDll.lib
|
||||||
|
INCLUDEPATH += $$PWD/component/CommonDLl
|
||||||
|
|
||||||
|
# 判断 32 或者 64 位
|
||||||
|
contains(DEFINES, WIN64) {
|
||||||
|
CONFIG(debug, debug|release) {
|
||||||
|
LIBS += -L$$PWD/lib/tools/opencv/x64 -lopencv_world3410dJelsefLIBS
|
||||||
|
} else {
|
||||||
|
LIBS += -L$$PWD/lib/tools/libtiff -ltiff
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
LIBS += -L$$PWD/lib/tools/opencv/x86-lopencv_core3410dl
|
||||||
|
CONFIG(debug, debug|release) {
|
||||||
|
LIBS += -L$$PWD/lib/tools/opencv/x86-lopencv_core3410dl
|
||||||
|
} else {
|
||||||
|
LIBS += -L$$PWD/lib/tools/opencv/x86-lopencv_core3410
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# 平台相关性处理
|
||||||
|
win32 {
|
||||||
|
!win32-g++: {}
|
||||||
|
}
|
||||||
|
|
||||||
|
linux {
|
||||||
|
}
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/3rd/log4cpp/include/
|
||||||
|
LIBS += -L$$PWD/3rd/log4cpp/lib -llog4cpp
|
26
svn.txt
Normal file
26
svn.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
1.类Unix系统下SVN Server的配置
|
||||||
|
安装subversion
|
||||||
|
anon-access = read 匿名用户的访问级别
|
||||||
|
auth-access = write 授权用户的访问级别
|
||||||
|
password-db = passwd 用户账号与密码的文件位置
|
||||||
|
authz-db = authz 指定权限配置文件的位置
|
||||||
|
realm = realm-name 指定版本库的认证域
|
||||||
|
|
||||||
|
authz:权限配置文件
|
||||||
|
passwd:账号密码的配置
|
||||||
|
svnserve.conf:svn服务器配置文件
|
||||||
|
|
||||||
|
创建一个目录:svnadmin create A
|
||||||
|
cd A
|
||||||
|
vim passwd 配置账号密码
|
||||||
|
vim authz 配置权限:
|
||||||
|
anon-access = none
|
||||||
|
auth-access = write
|
||||||
|
authz-db = authz
|
||||||
|
password-db = passwd
|
||||||
|
|
||||||
|
group下面给权限
|
||||||
|
[/]
|
||||||
|
xxx=rw
|
||||||
|
|
||||||
|
|
65
vcpkg.txt
Normal file
65
vcpkg.txt
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
x.安装
|
||||||
|
git clone https://github.com/microsoft/vcpkg
|
||||||
|
cd vcpkg
|
||||||
|
./bootstrap-vcpkg.bat (其他平台用对应的脚本)
|
||||||
|
|
||||||
|
x.如何更新
|
||||||
|
git pull
|
||||||
|
重新./bootstrap-vcpkg.bat
|
||||||
|
|
||||||
|
x.查询有哪些库 https://vcpkg.io/en/index.html
|
||||||
|
|
||||||
|
在 triplets/下面设置
|
||||||
|
.\vcpkg.exe install openssl --triplet x86-windows
|
||||||
|
--triplet 后面的内容就是triplets/下的列表
|
||||||
|
set(VCPKG_PLATFORM_TOOLSET v141)
|
||||||
|
有效设置
|
||||||
|
Visual Studio 2022 平台工具集为 v143。
|
||||||
|
Visual Studio 2019 平台工具集为 v142。
|
||||||
|
Visual Studio 2017 平台工具集为 v141。
|
||||||
|
Visual Studio 2015 平台工具集为 v140。
|
||||||
|
|
||||||
|
x.安装库
|
||||||
|
vcpkg install spdlog (默认x86)
|
||||||
|
vcpkg install spdlog:x64-windows
|
||||||
|
vcpkg install spdlog:x64-windows-static
|
||||||
|
|
||||||
|
x.更新库
|
||||||
|
vcpkg update 或者 vcpkg upgrade 列出
|
||||||
|
upgrade 会列出,但是不升级,使用 -no-dry-run
|
||||||
|
|
||||||
|
vcpkg upgrade spdlog:x64-windows --no-dry-run
|
||||||
|
可以指定多个库参数
|
||||||
|
|
||||||
|
x.查询库
|
||||||
|
vcpkg search spdlog
|
||||||
|
|
||||||
|
x.列出已安装的库
|
||||||
|
vcpkg list
|
||||||
|
|
||||||
|
x.导出一个库
|
||||||
|
vcpkg export spdlog:x64-windows --zip or --7zip
|
||||||
|
–raw 以不打包的目录格式导出
|
||||||
|
–nuget 以nuget包形式导出
|
||||||
|
–ifw 我也不知道这是啥格式
|
||||||
|
–zip 以zip压缩包形式导出
|
||||||
|
–7zip 以7z压缩包形式导出
|
||||||
|
|
||||||
|
导出位置在 vcpkg 目录下
|
||||||
|
|
||||||
|
x.集成到 visual studio (全局)
|
||||||
|
vcpkg integrate install
|
||||||
|
vcpkg integrate remove
|
||||||
|
|
||||||
|
x.集成到 visual studio (某个项目)
|
||||||
|
vcpkg integrate project 生成 nuget 配置文件,同时会给一个安装命令。
|
||||||
|
在 vs 中打开[工具]->nuget->控制台,输入安装命令。
|
||||||
|
|
||||||
|
x.集成到 CMake
|
||||||
|
设置 CMAKE_TOOLCHAIN_FILE {vcpkg_root}/scripts/buildsystems/vcpkg.cmake
|
||||||
|
|
||||||
|
x.例如 VSCode 编辑器
|
||||||
|
settings.json中:
|
||||||
|
"cmake.configureSettings": {
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "${env:VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
||||||
|
},
|
9
vs.txt
Normal file
9
vs.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
【vs_buildtools】
|
||||||
|
参考链接:
|
||||||
|
https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022
|
||||||
|
|
||||||
|
[vs_buildtools]
|
||||||
|
.\vs_BuildTools.exe --passive --wait --layout E:\vs2022\data --lang en-US --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC
|
||||||
|
|
||||||
|
[vs]
|
||||||
|
VisualStudioSetup.exe --layout D:\Data\cplusplus_development_complete_vs2017_2024\data --lang zh-CN --add Microsoft.VisualStudio.Workload.NativeCrossPlat --includeRecommended --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended --add Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC Microsoft.VisualStudio.Component.VC.CLI.Support
|
26
web.txt
Normal file
26
web.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
1.如何设置nginx代理,包括https。
|
||||||
|
nginx 在 http 下设置如下内容
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name ww.sinxmiao.cn;
|
||||||
|
client_max_body_size 500m; 这里不设置,大一点的仓库不能push
|
||||||
|
ssl_certificate/root/ssl/sinxmiao.crt;
|
||||||
|
ssl_certificate_key /root/ssl/sinxmiao.key;
|
||||||
|
location / {
|
||||||
|
proxy_pass http://localhost:3000;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header x-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nginx http 强制重定向到https
|
||||||
|
新建一个server:
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_namewww.sinxmiao.cn;
|
||||||
|
rewrite ^(.*)$ https://$host$1 permanent;
|
||||||
|
|
||||||
|
}
|
||||||
|
2.网页中插入一个备案号示例:
|
||||||
|
<a class="item" href="https://beian.miit.gov.cn/">xx号-1</a>
|
Loading…
x
Reference in New Issue
Block a user