You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Visual Studio 2017构建pybind11项目时如何配置include和lib路径

解决方案
  • 方法1:直接修改setup.py添加头文件路径
    你只需要将targetver.h所在的文件夹路径添加到Extension构造函数的include_dirs参数列表中即可,如果后续出现库文件缺失报错,对应添加library_dirs和libraries参数即可,修改后的示例代码如下:
from setuptools import setup, Extension
import pybind11

cpp_args = []

sfc_module = Extension(
    'test_sample',
    sources=['Test.cpp'],
    # 此处把示例路径替换为你本地targetver.h所在的实际文件夹路径,加r前缀避免Windows路径转义
    include_dirs=[pybind11.get_include(), r"C:\Windows Kits\10\Include\10.0.xxx.0\um"],
    # 后续出现库文件找不到时,添加库文件所在的文件夹路径
    library_dirs=[r"C:\Windows Kits\10\Lib\10.0.xxx.0\um\x64"],
    # 填写需要链接的库文件名
    libraries=["user32", "kernel32"],
    language='c++',
    extra_compile_args=cpp_args,
    )

setup(
    name='test_sample',
    version='1.0',
    description='Python package with Test C++ extension (PyBind11)',
    ext_modules=[sfc_module],
)
  • 方法2:使用VS自带的开发者命令提示符编译(推荐,无需手动配置路径)
    报错的根本原因是普通PowerShell没有加载Visual Studio的编译环境变量,找不到Windows SDK的相关路径。你可以直接从开始菜单找到x64 Native Tools Command Prompt for VS 2017启动,再在这个终端中执行python setup.py build命令,VS会自动配置好所有头文件、库文件的搜索路径,不需要手动修改setup.py添加路径。

内容的提问来源于stack exchange,提问作者xycs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:54:04