我正在尝试编译3.2源代码附带的示例visual studio解决方案。我按原样将目录复制到一个级别。我没有使用他们使用的相同的视觉工作室。
出于某种原因,我得到了这个:
1>LINK : fatal error LNK1181: cannot open input file 'python26.lib'
我不明白链接器(或大部分visual c ++)是如何工作的。但是我已经检查过include和library目录没有任何对于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);
}
答案 0 :(得分:1)
我不会使用源附带的示例代码,您的项目设置必须在输入列表中包含Python26.lib。使用distutil更容易,这是一个Simple模块的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: