自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (6)
  • 收藏
  • 关注

原创 error This file requires compiler and library support for the ISO C++ 2011 (cmake 升级3.29版本解决)

usr/include/c++/4.8.2/bits/c++0x_warning.h:32:2: 错误:#error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

2024-07-18 11:14:47 174

原创 使用 nm 或 objdump 工具检查 .so 文件指定函数是否存在

nm -D 动态库名使用nm或objdump这样的工具来检查.so文件中的符号是一个很好的方法,以确保)是否存在于该共享库中。

2024-05-12 11:48:02 596

原创 lua 判断字符串是否包含子字符串(点符号查找)

ua 判断字符串是否包含子字符串(点符号查找)

2024-05-12 11:36:23 345 1

原创 cmake 动态库构建及使用(c动态库)

增加Core.h 头文件增加Core.cpp文件。

2024-05-07 02:15:00 232

原创 c++ 使用libuv库

这将在当前目录下创建一个名为的目录,其中包含libuv的源码。二、编译安装libuv 进入libuv的源码目录: 运行以生成配置脚本(如果存在)。这可能在某些libuv版本中需要,但不一定。 运行脚本以准备编译环境。这个脚本会检查您的系统环境,并生成适合您的系统的Makefile文件。 编译libuv: (可选)运行测试以确保编译没有问题: 安装libuv: 这会将libuv库安装到您的系统中,通常是目录。 将libuv下的in

2024-05-05 11:37:06 631

原创 cmake 函数功能介绍

设置项目的名称和版本,这是每个。

2024-05-05 10:39:53 816

原创 centos gcc 升级

/contrib/download_prerequisites:行261: bzip2: 未找到命令。sha512sum: 警告:1 个校验和不匹配。gmp-6.2.1.tar.bz2: 失败。备注:如果下载不了看方法2。

2024-04-28 14:58:30 445

原创 lua编译器和lua解释器、lua虚拟机的区别

lua编译器: 将lua源代码编译成字节码,提高代码加载速度lua解释器:逐条执行编译器生成的字节码,并将其转换为虚拟机可以执行的指令。lua虚拟机:提供了执行指令所需要的环境。

2024-04-27 22:02:34 1020

原创 lua编译器介绍

Lua编译器是将Lua语言编写的源代码转换为可执行代码的工具。

2024-04-27 21:38:50 1341 1

原创 游戏开发过程中,什么情况下用组件

在游戏开发过程中,使用组件的情境是多种多样的,它们主要用于实现游戏的各种功能和特性。

2024-04-20 22:45:49 211

原创 c++ 继承和组件的区别

组件化编程是一种将系统拆分为多个独立、可复用的组件的编程方法。每个组件封装了特定的功能或业务逻辑,并通过定义良好的接口与其他组件进行交互。组件化编程有助于提高系统的可维护性、可扩展性和可重用性。

2024-04-20 22:33:29 670

原创 vim编辑器复制粘贴格式显示不对解法

set paste 进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。:set nopaste 取消paste模式。

2024-04-14 23:42:43 538

原创 c++ 使用 cpp-httplib

一旦你包含了cpp-httplib的头文件,你就可以在你的C++代码中使用它来创建HTTP服务器或发送HTTP请求。你只需将cpp-httplib的头文件包含在你的项目中即可。然后,我们让服务器在本地主机的8080端口上监听,并启动服务器。确保在编译命令中包含所有必要的源文件,并链接任何必要的库(虽然cpp-httplib不需要链接任何库)。文件复制到你的项目目录,或者在你的C++源代码文件中使用相对路径或绝对路径来包含它。你可以直接将cpp-httplib的头文件包含在你的C++项目中。

2024-04-14 23:37:18 508

原创 libcurl库与cpp-httplib库区别

而cpp-httplib库轻量级且易于使用,适用于构建基于HTTP/HTTPS的简单服务和Web服务器。libcurl库主要作为客户端库使用,用于发送HTTP请求,而不是直接创建HTTP服务。但是,你可以使用libcurl库与其他技术结合(如使用多线程和套接字编程)来构建一个简单的HTTP服务器。libcurl是一个功能强大的客户端URL传输库,支持多种协议如HTTP、FTP、SMTP等。libcurl适用于需要处理多种协议和复杂的网络传输任务的场景,具有高度的可定制性。)的GET请求的路由处理函数。

2024-04-14 12:34:21 621

原创 skynet 项目应用如何设计目录结构

使用skynet架构之项目目录结构设计如下。

2024-04-13 23:23:23 189

原创 skynet 使用protobuf

skynet 使用protobuf 通信

2024-04-13 21:30:38 834

原创 linux lua版本升级

首先,你需要从Lua的官方网站下载Lua 5.4的源代码。你可以访问Lua的官方网站或使用wget或curl命令从命令行下载。替换为实际的Lua 5.4版本文件名。

2024-04-07 22:06:21 309

原创 ssh 连接linux经常断开

【代码】ssh 连接linux经常断开。

2024-04-04 10:54:33 526

原创 skynet sproto编译

编译skynet 的sproto库

2024-04-04 10:08:23 253

原创 密钥对登陆linux

如果一切正常,你将无需输入密码即可登录到服务器。如果出现问题,请检查服务器上的SSH日志(通常位于。记得妥善保管你的私钥,不要将其分享给任何人。私钥的安全性对于SSH密钥认证至关重要。替换为你的服务器IP地址或主机名。执行此命令时,系统会提示你输入。不可用,你可以手动复制公钥内容并将其追加到服务器的。会自动将你的公钥追加到远程服务器上的。),以获取有关连接尝试的详细信息。这将会生成一个私钥(默认名为。如果你的本地机器上安装了。替换为你的服务器用户名,)和一个公钥(默认名为。

2024-04-04 09:57:21 498

原创 c++ map

std::map是C++标准库(STL)中的一个关联容器,它存储的元素都是键值对(key-value pairs),并且根据键(key)自动排序。每个键在map中都是唯一的,通过键可以高效地查找、插入和删除对应的值(value)。std::map。

2024-03-31 11:20:25 456

原创 c++ vector介绍

是C++标准库(STL)中的一个动态数组类模板。它允许存储相同类型的元素集合,并且可以根据需要动态地增加或减少其大小。提供了一组函数来访问、插入和删除元素,以及执行其他与数组操作相关的任务。使用可以避免手动管理动态数组时可能遇到的许多常见问题,如内存泄漏和越界访问。

2024-03-31 11:02:09 962

原创 git常用操作指令

git常用操作指令

2024-03-28 23:21:14 1511

原创 请保持你的核心竞争力

总之,35岁的程序员不一定必然失业,关键是能否持续学习、适应市场变化,并适时调整自己的职业规划。关于程序员35岁是否会失业的问题,坊间的确存在一种普遍担忧,尤其是在互联网行业,许多人担心程序员这个职业存在“35岁现象”,即35岁以上的程序员可能面临职业发展瓶颈、职位晋升困难或是被年轻程序员取代的风险。职业转型与发展:35岁以上的程序员可以通过积累的经验转向技术咨询、架构设计、产品规划、技术管理等方向,甚至创业或转行到相关领域,如数据分析、人工智能、DevOps等,拓宽职业道路。

2024-03-28 14:42:45 771

原创 lua 判断字符串是否包含指定字符

在 Lua 中,如果你想判断一个字符串是否包含特定的子字符串(例如a),你可以使用函数。函数会搜索第一个参数(字符串)中第二个参数(子字符串)出现的位置。如果找到了子字符串,它会返回子字符串开始和结束的位置(两个索引);如果没有找到,它会返回nil。以下是一个示例,展示如何判断一个字符串是否包含a在这个例子中,函数会检查传入的字符串str是否包含a。如果找到了a,函数返回true;否则返回false。然后,我们调用这个函数并打印相应的消息。

2024-03-27 13:12:55 1262

原创 lua 获取指定路径下的所有文件夹

io.popen是 Lua 中的一个函数,它允许你执行一个外部命令并将命令的输出作为流处理。如果你想在 Lua 中通过io.popen执行dir命令(linux 命令是ls )来获取指定文件夹下的所有文件及其路径,你可以构造一个适用于 Windows 环境下的dir命令,并通过io.popen执行这个命令。这里的/b参数表示简洁格式(只显示文件名),而/s表示包括所有子目录的内容。请注意,你需要将替换为你要查找的实际文件夹路径。

2024-03-27 13:03:56 1198

原创 sql如何增加数据

在MySQL中增加数据主要是通过SQL语句来实现的。

2024-03-26 23:27:09 649

原创 c语言运算符优先级

在C语言中,运算符优先级是指在表达式中执行运算的先后顺序。按照C语言的标准规范,不同的运算符被赋予了不同的优先级等级,优先级高的运算符会先进行运算。如果同一优先级的运算符出现在同一个表达式中,则按照从左到右或从右到左的结合性进行处理。

2024-03-26 23:13:47 995

原创 无锁队列(Lock-Free Queue)

无锁队列(Lock-Free Queue)是一种不使用锁机制(如互斥锁或读写锁)来实现线程安全的数据结构,是lock-free中最基本的数据结构。它通过复杂的原子操作(如CAS操作,在C++中,可以使用库提供的原子操作)来确保在多线程环境下的正确性和一致性。无锁队列的设计目标是在高并发场景下提供高性能的入队和出队操作,避免了锁机制带来的性能开销和潜在的死锁问题。对于多线程用户来说,无锁队列的入队和出队操作是线程安全的,无需再加锁控制。

2024-03-24 11:55:39 3459

原创 CAS(Compare-And-Swap)机制介绍

但是,请注意,虽然CAS操作在某些情况下可以提高性能,但它们并不总是最佳选择,特别是在复杂的并发场景中。例如,在基于Redis的分布式锁实现中,CAS操作可以用于判断锁是否已经释放,避免因为多个节点同时申请锁导致的死锁问题。:CAS操作避免了锁的获取和释放过程,减少了线程之间的竞争和阻塞,因此在高并发场景下通常能够提供比传统锁机制更好的性能。:CAS操作是原子的,意味着在多线程环境下,对共享变量的操作是不可分割的,从而保证了多线程之间对共享变量操作的正确性。这有助于减少锁的竞争和开销,提高内存管理的效率。

2024-03-24 11:47:22 1252

原创 分布式游戏服务器

当玩家登录游戏时,网关服务器会将其引导到合适的游戏服务器。在游戏过程中,玩家的操作和请求会被分发到相应的服务器节点进行处理,确保游戏的实时性和响应速度。分布式游戏服务器通常包括多个组件,如集群管理服务器、网关服务器、大厅服务器和游戏逻辑服务器。每个节点都负责处理一部分游戏逻辑和玩家请求,通过高速网络连接和特定的通信协议,这些节点能够协同工作,为玩家提供连续、一致和可靠的游戏体验。总之,分布式游戏服务器通过其可扩展性、减少延迟、负载均衡和高可用性等优点,为大型多人在线游戏提供了稳定、高效的游戏体验。

2024-03-20 13:11:48 1069

原创 谈谈我对分布式服务器的理解

通过采用分布式服务器架构,可以将不同的功能模块(如用户管理、商品管理、订单处理等)部署到不同的服务器上,并通过网络连接进行协同工作。总之,分布式服务器通过其高可用性、可扩展性、负载均衡和性能提升等优点,在多个领域得到了广泛的应用。在实际应用中,需要根据具体的业务需求和技术要求,选择合适的分布式服务器架构和解决方案。在分布式服务器架构中,数据通常被分散存储在不同的节点上,通过数据复制、分片等技术保证数据的可靠性和一致性。当某个服务器出现故障时,其他服务器可以接管其任务,确保系统的连续性和数据的完整性。

2024-03-20 12:57:51 678

原创 制作一个简单的html个人网页

HTML (HyperText Markup Language) 是用于创建网页的标准标记语言。它使用一系列的元素(或标签)来定义网页内容,如段落、标题、链接、图片等。浏览器会读取HTML代码,并将其渲染成可见的网页内容。HTML是构建网页的基础,通常与CSS(用于样式设计)和JavaScript(用于交互功能)配合使用。

2024-03-20 11:39:13 459

原创 node.js常用命令

这个命令用于查看当前安装的 npm(Node Package Manager)的版本号。:这个命令用于将指定的 npm 包安装到全局环境中,这样可以在任何地方使用。:这个命令用于查看指定npm包的详细信息,包括版本、描述、依赖等。:这个命令用于清理npm的缓存,有时可以解决安装包时的问题。:这个命令用于列出当前项目中安装的所有npm包及其依赖项。:这个命令用于在 npm 仓库中搜索包含指定关键词的包。:这个命令用于更新当前项目中所有的npm包到最新版本。:这个命令用于安装指定版本的 npm 包。

2024-03-20 10:19:21 714

原创 CentOS yum安装MongoDB的详细教程

这条命令将会安装MongoDB的服务器软件、客户端工具以及相关的依赖。

2024-03-18 22:27:47 914

原创 设计模式的六大基本原则

写代码设计原则是指在编写代码时,遵循一些通用的指导原则,以确保代码的可读性、可维护性、可扩展性和可重用性。这些原则有助于开发人员创建出高质量的软件系统。下面我将介绍几个常见的代码设计原则,并通过C++代码例子来说明它们的应用。

2024-03-18 11:23:04 1275

原创 lua profile 性能分析工具都有哪些

在 Lua 中,性能分析(profiling)是一个关键步骤,用于找出代码中的瓶颈和优化机会。通过性能分析,你可以了解哪些函数或代码段占用了最多的执行时间,从而可以优先优化这些部分。Lua 本身并没有内置的性能分析工具,但社区提供了许多有用的第三方库和工具来帮助你进行性能分析。

2024-03-17 22:55:48 743 1

原创 lua gc垃圾回收知识记录

在Lua中,GC是"Garbage Collection"(垃圾回收)的缩写。Lua使用自动内存管理,这意味着程序员不需要显式地分配和释放内存。相反,Lua运行时环境负责跟踪哪些数据对象正在被使用,并自动释放不再使用的对象的内存。这个过程就称为垃圾回收。Lua的垃圾回收器是自动运行的,并且对于大多数应用程序来说是透明的。但是,程序员仍然可以通过Lua的API或标准库中的一些函数来影响垃圾回收的行为。例如,

2024-03-17 22:51:56 1298 1

原创 linux常用操作命令

rm -rf 目录名。mv 文件名 目录名。locate 文件名。passwd 用户名。du -sh 目录名。

2024-03-17 22:33:31 494 1

原创 Mongo 常用操作命令

mongodb 数据库常用命令

2024-03-15 23:58:48 453 1

libuv--可调试(vs2008编译)

windows下用vs2008(及以上版本)编译的libuv-1.x源代码 可调试运行。包含sln工程文件,run-benchmarks 和 run-test 测试用例

2017-05-26

第1章 Linux概述

第1章 Linux概述,Linux是一套免费使用和自由传播的类UNIX操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86系列和RISC处理器。

2013-03-12

Nokia_PC_Suite_chi_sc_web_woaichaoliu.com

Nokia_PC_Suite_chi_sc_web_woaichaoliu.com

2012-08-02

haozip_woaichaoliu.com_v2.8

haozip_woaichaoliu.com_v2.8

2012-08-02

KABAPOWER_woaichaoliu.com_20120801

KABAPOWER_woaichaoliu.com_20120801.

2012-08-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除