Agent SkillsA-EVO-Lab/a-evolve › build-compiled-extensions

build-compiled-extensions

GitHub

指导从源码构建C/C++/Cython扩展及大型框架(如Caffe),涵盖环境准备、编译流程、依赖冲突处理及验证方法。

seed_workspaces/terminal/skills/build-compiled-extensions/SKILL.md A-EVO-Lab/a-evolve

Trigger Scenarios

需要编译Python C扩展 构建Caffe等C++框架 pip install超时或失败

Install

npx skills add A-EVO-Lab/a-evolve --skill build-compiled-extensions -g -y
More Options

Non-standard path

npx skills add https://github.com/A-EVO-Lab/a-evolve/tree/main/seed_workspaces/terminal/skills/build-compiled-extensions -g -y

Use without installing

npx skills use A-EVO-Lab/a-evolve@build-compiled-extensions

指定 Agent (Claude Code)

npx skills add A-EVO-Lab/a-evolve --skill build-compiled-extensions -a claude-code -g -y

安装 repo 全部 skill

npx skills add A-EVO-Lab/a-evolve --all -g -y

预览 repo 内 skill

npx skills add A-EVO-Lab/a-evolve --list

SKILL.md

Frontmatter
{
    "name": "build-compiled-extensions",
    "description": "How to build C\/C++\/Cython\/Fortran extensions and frameworks like Caffe, OpenCV, protobuf-dependent projects from source."
}

Building Compiled Extensions & Frameworks

Pre-flight

pip install setuptools wheel cython 2>/dev/null
apt-get install -y build-essential python3-dev 2>/dev/null

Cython extension workflow

cython file.pyx   # Cythonize to .c first
python setup.py build_ext --inplace 2>&1
# Manual fallback:
gcc -shared -fPIC -O2 $(python3-config --includes) -o mod$(python3-config --extension-suffix) mod.c

Building large C++ frameworks (Caffe, etc.)

  1. Check protobuf version: protoc --version and dpkg -l | grep protobuf
  2. Fix API incompatibilities before building (see debug-and-fix skill)
  3. Use make -j$(nproc) but capture errors: make 2>&1 | tee build.log
  4. For Caffe specifically:
    • Set CPU_ONLY := 1 in Makefile.config for non-GPU environments
    • Fix protobuf SetTotalBytesLimit calls for newer protobuf
    • Use make all -j$(nproc) && make test && make runtest

When pip install times out

  1. Install dependencies individually first: pip install numpy scipy
  2. Build extensions only: python setup.py build_ext --inplace
  3. Or: pip install --no-deps -e .

Common pitfalls

  • Missing numpy headers: pip install numpy before building numpy-dependent C extensions
  • Import from wrong dir: Test from /tmp, not the source directory
  • Protobuf mismatch: Check version and fix API calls before compiling

Verification

find . -name "*.so" -newer setup.py
cd /tmp && python -c "import mypackage; print('OK')"

Version History

  • c9d4789 Current 2026-07-25 07:28

Same Skill Collection

artifacts/tb2_clawcode_opus46/skills/build-compiled-extensions/SKILL.md
artifacts/tb2_clawcode_opus46/skills/debug-and-fix/SKILL.md
artifacts/tb2_clawcode_opus46/skills/environment-discovery/SKILL.md
artifacts/tb2_clawcode_opus46/skills/python-data-analysis/SKILL.md
artifacts/tb2_clawcode_opus46/skills/scientific-computing/SKILL.md
artifacts/tb2_clawcode_opus46/skills/self-verification/SKILL.md
artifacts/tb2_clawcode_opus46/skills/systematic-exploration/SKILL.md
seed_workspaces/mcp_mh/.claude/skills/harness-optimizer/SKILL.md
seed_workspaces/osworld/skills/application-shortcuts/SKILL.md
seed_workspaces/osworld/skills/gui-click-over-keyboard/SKILL.md
seed_workspaces/osworld/skills/gui-navigation/SKILL.md
seed_workspaces/osworld/skills/screenshot-analysis/SKILL.md
seed_workspaces/osworld/skills/self-verification/SKILL.md
seed_workspaces/osworld/skills/web-access-strategies/SKILL.md
seed_workspaces/skillbench/skills/data-formats/SKILL.md
seed_workspaces/skillbench/skills/environment-discovery/SKILL.md
seed_workspaces/skillbench/skills/python-packages/SKILL.md
seed_workspaces/skillbench/skills/skill-usage/SKILL.md
seed_workspaces/terminal/skills/debug-and-fix/SKILL.md
seed_workspaces/terminal/skills/environment-discovery/SKILL.md
seed_workspaces/terminal/skills/scientific-computing/SKILL.md
seed_workspaces/terminal/skills/self-verification/SKILL.md

Metadata

Files
0
Version
88190c6
Hash
6092adcd
Indexed
2026-07-25 07:28

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 18:28
浙ICP备14020137号-1 $방문자$