【人工智能】OpenClaw(一):MacOS极简安装OpenClaw之Docker版

【人工智能】OpenClaw(一):MacOS极简安装OpenClaw之Docker版

目录

一、背景

二、安装教程

2.1 MacOS安装Docker​编辑

2.2 下载OpenClaw镜像

2.3 启动OpenClaw镜像+安装引导

2.4 自己购买的大模型API配置

2.5 飞书配置

2.5.1 打开飞书开放平台

2.5.2 创建应用

2.5.3 创建机器人

2.5.4 权限管理

2.5.5 事件与回调

2.5.6 新建版本

2.6 Skills及其他配置

2.7 启动openclaw容器(container)

2.8 openclaw容器内启动gateway

2.9 openclaw容器内使用tui对话

2.9.1 docker应用内对话

2.9.2 新开终端对话

2.10 openclaw与飞书配对

2.10.1 回到飞书与机器人聊天,会提示需要配对

2.10.2 在docker的Container终端内运行

2.10.3 回到飞书继续聊天——大功告成!

三、总结


一、背景

OpenClaw最近实在是太火了,作为ZEEKLOG认证的“优质人工智能博主”,不跟进有点说不过去了,还是一贯的风格,尽量极简让你养上自己的小龙虾。

在当下企业协同办公与AI智能化应用深度融合的趋势下,越来越多团队需要一款轻量化、易部署、可自定义对接的AI助手工具,实现大模型能力与日常办公协作平台的无缝衔接,提升内部沟通、信息处理、任务执行的效率。OpenClaw作为一款开源的AI助手框架,具备跨平台部署、灵活对接各类大模型API、适配主流协同办公工具的核心优势,能够帮助个人和中小企业快速搭建专属的AI协作机器人,无需复杂的底层开发,即可实现AI对话、任务处理、信息调取等实用功能。

相较于传统的AI工具部署方式,基于Docker部署OpenClaw能够最大程度规避不同操作系统的环境兼容问题,实现环境隔离、一键启停和便捷维护,尤其适合非专业运维人员快速上手。而飞书作为国内主流的企业协同办公平台,将OpenClaw与飞书机器人集成,能够让团队成员直接在飞书聊天界面调用AI能力,无需切换软件,真正实现办公场景与AI能力的闭环融合。本教程针对MacOS系统用户,梳理了从Docker环境搭建、OpenClaw镜像部署、大模型API配置到飞书机器人对接、功能调试的全流程实操步骤,解决新手部署过程中环境报错、配置遗漏、对接失败等常见问题,帮助用户快速完成专属AI办公助手的搭建,落地轻量化AI办公应用。

二、安装教程

2.1 MacOS安装Docker

2.2 下载OpenClaw镜像

docker pull openeuler/openclaw:2026.3.2-oe2403sp3

2.3 启动OpenClaw镜像+安装引导

docker run -it --name openclaw openeuler/openclaw:2026.3.2-oe2403sp3 onboard --install-daemon

2.4 自己购买的大模型API配置

◇ I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue?(“我明白这是默认个人私有的,共享/多用户使用则需要加以限制。是否继续?”) │ Yes │ ◇ Onboarding mode │ QuickStart │ ◇ QuickStart ─────────────────────────╮ │ │ │ Gateway port: 18789 │ │ Gateway bind: Loopback (127.0.0.1) │ │ Gateway auth: Token (default) │ │ Tailscale exposure: Off │ │ Direct to chat channels. │ │ │ ├──────────────────────────────────────╯ │ ◇ Model/auth provider │ Custom Provider │ ◇ API Base URL │ https://api.xxxx.com/v1(自己大模型服务的api) │ ◇ How do you want to provide this API key? │ Paste API key now │ ◇ API Key (leave blank if not required) │ sk-XXXXXXXXXXXXXXXXXXXXX(自己大模型服务的API Key) │ ◇ Endpoint compatibility │ OpenAI-compatible │ ◇ Model ID │ claude-sonnet-4-6(自己大模型服务的模型ID) │ ◇ Verification successful. │ ◇ Endpoint ID │ custom-api-xxx-ai(自定义EndpointID) │ ◇ Model alias (optional) │ Configured custom provider: custom-api-xxx-ai/claude-sonnet-4-6

2.5 飞书配置

2.5.1 打开飞书开放平台

2.5.2 创建应用

2.5.3 创建机器人

进入应用—添加应用能力—机器人

2.5.4 权限管理

批量导入权限

批量权限json(或参考https://docs.openclaw.ai/zh-CN/channels/feishu

{ "scopes": { "tenant": [ "aily:file:read", "aily:file:write", "aily:session:read", "aily:session:write", "application:application.app_message_stats.overview:readonly", "application:application:self_manage", "application:bot.menu:write", "bitable:app", "bitable:app:readonly", "board:whiteboard:node:create", "board:whiteboard:node:delete", "board:whiteboard:node:read", "board:whiteboard:node:update", "cardkit:card:write", "contact:contact.base:readonly", "contact:user.base:readonly", "contact:user.employee_id:readonly", "corehr:file:download", "docs:doc", "docs:doc:readonly", "docs:document.comment:create", "docs:document.comment:read", "docs:document.comment:update", "docs:document.comment:write_only", "docs:document.content:read", "docs:document.media:download", "docs:document.media:upload", "docs:document.subscription", "docs:document.subscription:read", "docs:document:copy", "docs:document:export", "docs:document:import", "docs:event.document_deleted:read", "docs:event.document_edited:read", "docs:event.document_opened:read", "docs:event:subscribe", "docs:permission.member", "docs:permission.member:auth", "docs:permission.member:create", "docs:permission.member:delete", "docs:permission.member:readonly", "docs:permission.member:retrieve", "docs:permission.member:transfer", "docs:permission.member:update", "docs:permission.setting", "docs:permission.setting:read", "docs:permission.setting:readonly", "docs:permission.setting:write_only", "docx:document", "docx:document.block:convert", "docx:document:create", "docx:document:readonly", "docx:document:write_only", "drive:drive", "drive:drive.metadata:readonly", "drive:drive.search:readonly", "drive:drive:readonly", "drive:drive:version", "drive:drive:version:readonly", "drive:export:readonly", "drive:file", "drive:file.like:readonly", "drive:file.meta.sec_label.read_only", "drive:file:download", "drive:file:readonly", "drive:file:upload", "drive:file:view_record:readonly", "event:ip_list", "im:chat", "im:chat.access_event.bot_p2p_chat:read", "im:chat.members:bot_access", "im:message", "im:message.group_at_msg:readonly", "im:message.group_msg", "im:message.p2p_msg:readonly", "im:message:readonly", "im:message:send_as_bot", "im:resource", "sheets:spreadsheet", "sheets:spreadsheet.meta:read", "sheets:spreadsheet.meta:write_only", "sheets:spreadsheet:create", "sheets:spreadsheet:read", "sheets:spreadsheet:readonly", "sheets:spreadsheet:write_only", "slides:presentation:create", "slides:presentation:read", "slides:presentation:update", "slides:presentation:write_only", "space:document.event:read", "space:document:delete", "space:document:move", "space:document:retrieve", "space:document:shortcut", "space:folder:create", "wiki:member:create", "wiki:member:retrieve", "wiki:member:update", "wiki:node:copy", "wiki:node:create", "wiki:node:move", "wiki:node:read", "wiki:node:retrieve", "wiki:node:update", "wiki:setting:read", "wiki:setting:write_only", "wiki:space:read", "wiki:space:retrieve", "wiki:space:write_only", "wiki:wiki", "wiki:wiki:readonly" ], "user": [ "aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read" ] } }

2.5.5 事件与回调

使用长链接接收事件

创建长链接环境

conda create -n py38 python=3.8 conda activate py38 pip install lark-oapi -U
import lark_oapi as lark ## P2ImMessageReceiveV1 为接收消息 v2.0;CustomizedEvent 内的 message 为接收消息 v1.0。 def do_p2_im_message_receive_v1(data: lark.im.v1.P2ImMessageReceiveV1) -> None: print(f'[ do_p2_im_message_receive_v1 access ], data: {lark.JSON.marshal(data, indent=4)}') def do_message_event(data: lark.CustomizedEvent) -> None: print(f'[ do_customized_event access ], type: message, data: {lark.JSON.marshal(data, indent=4)}') event_handler = lark.EventDispatcherHandler.builder("", "") \ .register_p2_im_message_receive_v1(do_p2_im_message_receive_v1) \ .register_p1_customized_event("这里填入你要自定义订阅的 event 的 key,例如 out_approval", do_message_event) \ .build() def main(): cli = lark.ws.Client("配置成应用的App Id", "配置成应用的App Secret", event_handler=event_handler, log_level=lark.LogLevel.DEBUG) cli.start() if __name__ == "__main__": main()

启动长链接

python feishu_ws.py

启动长链接后,“事件配置”与“回调配置”中的“保存”可以点击了(否则点不动)

“事件配置”中,添加所有“消息与群组”

“回调配置”中,添加所有回调

2.5.6 新建版本

版本发布后,飞书会收到“开发者小助手”的审批通过,发布成功的消息,打开应用,出现机器人聊天对话框。

OpenClaw的飞书配置

◇ Channel status ────────────────────────────╮ │ │ │ Telegram: needs token │ │ WhatsApp (default): not linked │ │ Discord: needs token │ │ Slack: needs tokens │ │ Signal: needs setup │ │ signal-cli: missing (signal-cli) │ │ iMessage: needs setup │ │ imsg: missing (imsg) │ │ IRC: not configured │ │ Google Chat: not configured │ │ Feishu: install plugin to enable │ │ Google Chat: install plugin to enable │ │ Nostr: install plugin to enable │ │ Microsoft Teams: install plugin to enable │ │ Mattermost: install plugin to enable │ │ Nextcloud Talk: install plugin to enable │ │ Matrix: install plugin to enable │ │ BlueBubbles: install plugin to enable │ │ LINE: install plugin to enable │ │ Zalo: install plugin to enable │ │ Zalo Personal: install plugin to enable │ │ Synology Chat: install plugin to enable │ │ Tlon: install plugin to enable │ │ │ ├─────────────────────────────────────────────╯ │ ◇ How channels work ───────────────────────────────────────────────────────────────────────╮ │ │ │ DM security: default is pairing; unknown DMs get a pairing code. │ │ Approve with: openclaw pairing approve <channel> <code> │ │ Public DMs require dmPolicy="open" + allowFrom=["*"]. │ │ Multi-user DMs: run: openclaw config set session.dmScope "per-channel-peer" (or │ │ "per-account-channel-peer" for multi-account channels) to isolate sessions. │ │ Docs: channels/pairing │ │ │ │ Telegram: simplest way to get started — register a bot with @BotFather and get going. │ │ WhatsApp: works with your own number; recommend a separate phone + eSIM. │ │ Discord: very well supported right now. │ │ IRC: classic IRC networks with DM/channel routing and pairing controls. │ │ Google Chat: Google Workspace Chat app with HTTP webhook. │ │ Slack: supported (Socket Mode). │ │ Signal: signal-cli linked device; more setup (David Reagans: "Hop on Discord."). │ │ iMessage: this is still a work in progress. │ │ Feishu: 飞书/Lark enterprise messaging with doc/wiki/drive tools. │ │ Nostr: Decentralized protocol; encrypted DMs via NIP-04. │ │ Microsoft Teams: Bot Framework; enterprise support. │ │ Mattermost: self-hosted Slack-style chat; install the plugin to enable. │ │ Nextcloud Talk: Self-hosted chat via Nextcloud Talk webhook bots. │ │ Matrix: open protocol; install the plugin to enable. │ │ BlueBubbles: iMessage via the BlueBubbles mac app + REST API. │ │ LINE: LINE Messaging API bot for Japan/Taiwan/Thailand markets. │ │ Zalo: Vietnam-focused messaging platform with Bot API. │ │ Zalo Personal: Zalo personal account via QR code login. │ │ Synology Chat: Connect your Synology NAS Chat to OpenClaw with full agent capabilities. │ │ Tlon: decentralized messaging on Urbit; install the plugin to enable. │ │ │ ├───────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Select channel (QuickStart) │ Feishu/Lark (飞书) │ ◇ Install Feishu plugin? │ Download from npm (@openclaw/feishu) Downloading @openclaw/feishu… Extracting /tmp/openclaw-npm-pack-jlpXLF/openclaw-feishu-2026.3.13.tgz… WARNING: Plugin "feishu" contains dangerous code patterns: Environment variable access combined with network send — possible credential harvesting (/tmp/openclaw-plugin-62J8G3/extract/package/src/client.test.ts:74); Environment variable access combined with network send — possible credential harvesting (/tmp/openclaw-plugin-62J8G3/extract/package/src/client.ts:12) Installing to /root/.openclaw/extensions/feishu… Installing plugin dependencies… 12:38:31 [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: feishu (/root/.openclaw/extensions/feishu/index.ts). Set plugins.allow to explicit trusted ids. │ ◇ Feishu credentials ──────────────────────────────────────────────────────────────╮ │ │ │ 1) Go to Feishu Open Platform (open.feishu.cn) │ │ 2) Create a self-built app │ │ 3) Get App ID and App Secret from Credentials page │ │ 4) Enable required permissions: im:message, im:chat, contact:user.base:readonly │ │ 5) Publish the app or add it to a test group │ │ Tip: you can also set FEISHU_APP_ID / FEISHU_APP_SECRET env vars. │ │ Docs: feishu │ │ │ ├───────────────────────────────────────────────────────────────────────────────────╯ │ ◇ How do you want to provide this App Secret? │ Enter App Secret │ ◇ Enter Feishu App Secret │ XXXXXXXXXXXXXXXXXXXX │ ◇ Enter Feishu App ID │ XXXXXXXXXXXXXXXX [info]: [ 'client ready' ] │ ◇ Feishu connection test ───────────────────────────╮ │ │ │ Connected as ou_XXXXXXXXXXX │ │ │ ├────────────────────────────────────────────────────╯ │ ◇ Feishu connection mode │ WebSocket (default) │ ◇ Which Feishu domain? │ Feishu (feishu.cn) - China │ ◇ Group chat policy │ Open - respond in all groups (requires mention) │ ◇ Selected channels ──────────────────────────────────────────╮ │ │ │ Feishu — 飞书/Lark enterprise messaging. Docs: │ │ feishu │ │ │ ├──────────────────────────────────────────────────────────────╯ Config warnings: - plugins.entries.feishu: plugin feishu: duplicate plugin id detected; later plugin may be overridden (/root/.openclaw/extensions/feishu/index.ts) Updated ~/.openclaw/openclaw.json Workspace OK: ~/.openclaw/workspace Sessions OK: ~/.openclaw/agents/main/sessions

2.6 Skills及其他配置

默认先选“no”或“skip”

◇ Skills status ─────────────╮ │ │ │ Eligible: 7 │ │ Missing requirements: 41 │ │ Unsupported on this OS: 7 │ │ Blocked by allowlist: 0 │ │ │ ├─────────────────────────────╯ │ ◇ Configure skills now? (recommended) │ No │ ◇ Hooks ──────────────────────────────────────────────────────────────────╮ │ │ │ Hooks let you automate actions when agent commands are issued. │ │ Example: Save session context to memory when you issue /new or /reset. │ │ │ │ Learn more: https://docs.openclaw.ai/automation/hooks │ │ │ ├──────────────────────────────────────────────────────────────────────────╯ │ ◇ Enable hooks? │ Skip for now Config warnings: - plugins.entries.feishu: plugin feishu: duplicate plugin id detected; later plugin may be overridden (/root/.openclaw/extensions/feishu/index.ts) Config overwrite: /root/.openclaw/openclaw.json (sha256 39b96fed22c10c899a69792e607481ecf7d50b58f30be76a2451fd34630ab5a7 -> 21a9d0e63b76cf77d1b268e539c9a5eeba5e3f47e8981a9ba65f5295d91e11da, backup=/root/.openclaw/openclaw.json.bak) │ ◇ Systemd ───────────────────────────────────────────────────────────────────────────────╮ │ │ │ Systemd user services are unavailable. Skipping lingering checks and service install. │ │ │ ├─────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Gateway service ─────────────────────────────────────────────────────────────────────╮ │ │ │ Systemd user services are unavailable; skipping service install. Use your container │ │ supervisor or `docker compose up -d`. │ │ │ ├───────────────────────────────────────────────────────────────────────────────────────╯ Config warnings:\n- plugins.entries.feishu: plugin feishu: duplicate plugin id detected; later plugin may be overridden (/root/.openclaw/extensions/feishu/index.ts) Config warnings:\n- plugins.entries.feishu: plugin feishu: duplicate plugin id detected; later plugin may be overridden (/root/.openclaw/extensions/feishu/index.ts) Health check failed: gateway closed (1006 abnormal closure (no close frame)): no close reason Gateway target: ws://127.0.0.1:18789 Source: local loopback Config: /root/.openclaw/openclaw.json Bind: loopback │ ◇ Health check help ────────────────────────────────╮ │ │ │ Docs: │ │ https://docs.openclaw.ai/gateway/health │ │ https://docs.openclaw.ai/gateway/troubleshooting │ │ │ ├────────────────────────────────────────────────────╯ │ ◇ Optional apps ────────────────────────╮ │ │ │ Add nodes for extra features: │ │ - macOS app (system + notifications) │ │ - iOS app (camera/canvas) │ │ - Android app (camera/canvas) │ │ │ ├────────────────────────────────────────╯ │ ◇ Control UI ───────────────────────────────────────────────────────────────────────────────╮ │ │ │ Web UI: http://127.0.0.1:18789/ │ │ Web UI (with token): │ │ http://127.0.0.1:18789/#token=xxxxxxxx │ │ Gateway WS: ws://127.0.0.1:18789 │ │ Gateway: not detected (gateway closed (1006 abnormal closure (no close frame)): no close │ │ reason) │ │ Docs: https://docs.openclaw.ai/web/control-ui │ │ │ ├────────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Workspace backup ────────────────────────────────────────╮ │ │ │ Back up your agent workspace. │ │ Docs: https://docs.openclaw.ai/concepts/agent-workspace │ │ │ ├───────────────────────────────────────────────────────────╯ │ ◇ Security ──────────────────────────────────────────────────────╮ │ │ │ Running agents on your computer is risky — harden your setup: │ │ https://docs.openclaw.ai/security │ │ │ ├─────────────────────────────────────────────────────────────────╯ │ ◇ Shell completion ───────────────────────────────────────────────────────╮ │ │ │ Shell completion installed. Restart your shell or run: source ~/.zshrc │ │ │ ├──────────────────────────────────────────────────────────────────────────╯ │ ◇ Dashboard ready ────────────────────────────────────────────────────────────────╮ │ │ │ Dashboard link (with token): │ │ http://127.0.0.1:18789/#token=xxxxxxx │ │ Copy/paste this URL in a browser on this machine to control OpenClaw. │ │ No GUI detected. Open from your computer: │ │ ssh -N -L 18789:127.0.0.1:18789 user@<host> │ │ Then open: │ │ http://localhost:18789/ │ │ http://localhost:18789/#token=xxxxxxx │ │ Docs: │ │ https://docs.openclaw.ai/gateway/remote │ │ https://docs.openclaw.ai/web/control-ui │ │ │ ├──────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Web search (optional) ─────────────────────────────────────────────────────────────────╮ │ │ │ If you want your agent to be able to search the web, you’ll need an API key. │ │ │ │ OpenClaw uses Brave Search for the `web_search` tool. Without a Brave Search API key, │ │ web search won’t work. │ │ │ │ Set it up interactively: │ │ - Run: openclaw configure --section web │ │ - Enable web_search and paste your Brave Search API key │ │ │ │ Alternative: set BRAVE_API_KEY in the Gateway environment (no config changes). │ │ Docs: https://docs.openclaw.ai/tools/web │ │ │ ├─────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ What now ─────────────────────────────────────────────────────────────╮ │ │ │ What now: https://openclaw.ai/showcase ("What People Are Building"). │ │ │ ├────────────────────────────────────────────────────────────────────────╯ │ └ Onboarding complete. Use the dashboard link above to control OpenClaw.

2.7 启动openclaw容器(container)

docker start openclaw

2.8 openclaw容器内启动gateway

docker exec -it openclaw openclaw gateway run

2.9 openclaw容器内使用tui对话

2.9.1 docker应用内对话

在docker桌面版——Containers——点击openclaw这个container——Exec——运行——对话

openclaw tui

2.9.2 新开终端对话

docker exec -it openclaw openclaw tui

2.10 openclaw与飞书配对

2.10.1 回到飞书与机器人聊天,会提示需要配对

2.10.2 在docker的Container终端内运行

openclaw pairing approve feishu CZQCNKEG

2.10.3 回到飞书继续聊天——大功告成!

三、总结

本教程完整覆盖了MacOS系统下,基于Docker部署OpenClaw并完成飞书机器人集成的全流程操作,核心逻辑是依托Docker实现标准化环境部署,规避系统兼容问题,再通过大模型API配置赋予工具AI核心能力,最后对接飞书开放平台实现办公场景落地,整体流程可分为环境搭建、镜像部署、核心配置、平台对接、功能调试五大核心环节。

从实操关键点来看,Docker环境正常启动、大模型API信息准确、飞书长链接稳定运行、权限配置完整、两端成功配对是整个部署流程的核心要点,任意一个环节出错都会导致功能异常,新手操作时需重点关注长链接启动后再保存飞书配置、权限批量导入完整、容器全程保持运行这几个细节,避免踩坑。

完成全部部署后,OpenClaw飞书AI机器人即可正常投入使用,实现飞书端的AI对话、信息查询、任务处理等功能,且基于Docker的部署方式具备易维护、易迁移、易重启的优势,后续可根据需求自定义添加Skills技能、更换大模型API或对接其他协同平台,拓展更多实用功能。整体部署流程门槛较低,无需深厚的运维和开发基础,按照步骤逐步操作即可完成,能够快速帮助个人和团队实现AI办公能力的轻量化落地,提升日常办公协作效率,后续若出现容器异常、接口调用失败等问题,可优先检查Docker运行状态、API密钥有效性、飞书长链接连通性和权限配置情况,快速排查解决。

Read more

C++:模板的幻觉 —— 实例化、重定义与隐藏依赖势中

C++:模板的幻觉 —— 实例化、重定义与隐藏依赖势中

一、表象之下:模板真的“生成代码”吗? 很多人第一次学 C++ 模板时,会这样理解: “模板是一种代码生成机制,编译器在编译时会根据不同类型生成不同版本的函数或类。” 乍一看没错,比如: template<typename T> void print(T x) { std::cout << x << std::endl; } int main() { print(42); print("Hello"); } 似乎编译器确实“生成了两份函数”: print<int>(int) 与 print<const

By Ne0inhk
【C++贪心】P8769 [蓝桥杯 2021 国 C] 巧克力|普及+

【C++贪心】P8769 [蓝桥杯 2021 国 C] 巧克力|普及+

本文涉及知识点 C++贪心 [蓝桥杯 2021 国 C] 巧克力 题目描述 小蓝很喜欢吃巧克力,他每天都要吃一块巧克力。 一天小蓝到超市想买一些巧克力。超市的货架上有很多种巧克力,每种巧克力有自己的价格、数量和剩余的保质期天数,小蓝只吃没过保质期的巧克力,请问小蓝最少花多少钱能买到让自己吃 x x x 天的巧克力。 输入格式 输入的第一行包含两个整数 x x x, n n n,分别表示需要吃巧克力的天数和巧克力的种类数。 接下来 n n n 行描述货架上的巧克力,其中第 i i i 行包含三个整数 a i a_i ai , b i b_i bi

By Ne0inhk

揭秘C++26新特性:CPU亲和性控制如何让多线程性能飙升(专家级指南)

第一章:C++26 CPU亲和性与性能优化概述 在高性能计算和实时系统开发中,CPU亲和性控制成为提升程序执行效率的关键技术之一。C++26标准正在积极引入对硬件资源调度的底层支持,允许开发者通过标准化接口绑定线程到特定CPU核心,从而减少上下文切换开销、提高缓存命中率,并优化多核并行任务的执行性能。 为何关注CPU亲和性 * 降低线程迁移带来的缓存失效问题 * 增强实时应用的可预测性与响应速度 * 配合NUMA架构实现内存访问局部性优化 标准库中的预期接口设计 虽然C++26尚未最终定稿,但委员会提案P2173R4建议引入std::execution_context与std::set_affinity等设施。未来可能的用法如下: #include <thread> #include <execution> int main() { std::jthread worker([](std::stop_token st) { // 将当前线程绑定到CPU核心0 std::set_affinity(std::this_thread::get_

By Ne0inhk
C++杂说——命名空间,输入与输出,缺省参数,make/makefile

C++杂说——命名空间,输入与输出,缺省参数,make/makefile

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 命名空间 命名空间编译默认查找顺序: a、当前局部域 : 自留地 b、全局域找 : 村子野地 c, 不会到其他命名空间中去找 : 隔壁张大爷自留地 命名空间展开三种 1、指定访问 2、全展开 //// 展开命名空间 //using namespace bit; //using namespace xjh; 3、指定展开某一个(经常使用,可以展开它一个) // 指定展开某一个 //using bit::x; 命名空间可以为: // 局部域 // 全局域 // 命名空间域 // 不同域可以定义同名的变量/函数/类型 两个私有的命名空间最好不要同时展开,

By Ne0inhk