gpt4 book ai didi

c++ - 编译python3.2 C模块,链接器要求 'python26.lib'

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:42 28 4
gpt4 key购买 nike

我正在尝试编译 3.2 源代码附带的示例 visual studio 解决方案。我按照它所说的那样将目录复制了一层。我使用的 visual studio 与他们使用的不同。

出于某种原因,我得到了这个:

1>LINK : fatal error LNK1181: cannot open input file 'python26.lib'

我不明白链接器(或大部分 Visual C++)是如何工作的。但是,我已经检查过包含和库目录没有任何对 VS 和项目来说看起来不对的地方。

谁能帮我理解并解决这个问题?

这是示例模块源:

#include "Python.h"

static PyObject *
ex_foo(PyObject *self, PyObject *args)
{
printf("Hello, world\n");
Py_INCREF(Py_None);
return Py_None;
}

static PyMethodDef example_methods[] = {
{"foo", ex_foo, METH_VARARGS, "foo() doc string"},
{NULL, NULL}
};

static struct PyModuleDef examplemodule = {
PyModuleDef_HEAD_INIT,
"example",
"example module doc string",
-1,
example_methods,
NULL,
NULL,
NULL,
NULL
};

PyMODINIT_FUNC
PyInit_example(void)
{
return PyModule_Create(&examplemodule);
}

最佳答案

我不会使用源代码附带的示例代码,您的项目设置必须在输入列表中包含 Python26.lib。使用 distutils 更容易,这是一个简单模块的 setup.py:

from distutils.core import setup, Extension

module1 = Extension('Simple',
sources = ['Simple.c'])

setup (name = 'Simple',
version = '1.0',
description = 'This is a Simple package',
ext_modules = [module1])

从已运行 vcvarsall.bat 的 cmd.exe 运行它,并在其路径中包含 python。

但是,如果您必须使用 Visual Studio:

  1. 将Python库添加到项目中:python32.lib
  2. 将 Python 目录添加到项目 C:\Python32\include C:\Python32\libs
  3. 请记住将链接器输出设置为 .pyd 文件。
  4. 输出目录应该是C:\Python32\Lib\site-packages,或者自己复制生成的.pyd文件到site_packages

关于c++ - 编译python3.2 C模块,链接器要求 'python26.lib',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8562587/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com