Qianfei Li Ответов: 2

Python/C API для VC++


Привет,

Я пытался использовать Python/C API в VC++. Однако при связывании проекта я получил сообщение об ошибке ссылки:
питон.obj : ошибка lnk2019: неразрешенных внешних символ __бесенок__ру_инициализировать ссылка в функции _main

Я включил 'python27/Include' и 'python27/библиотеки В С/С++ - и gt;Общие -&ГТ;дополнительные каталоги включения и Компоновщик-и gt;Общие-&ГТ;дополнительные библиотеки каталоги.

Кроме того, я использовал режим "отладки". Есть ли какие-то дальнейшие шаги, которые я должен выполнить?

Ниже приведен код. Я был бы признателен, если бы кто-нибудь мог помочь.

==================================================
#include "stdafx.h"
#undef _DEBUG /* Link with python24.lib and not python24_d.lib */
#include "Python.h"


int main(int argc, char *argv[])
{
    int i;
    PyObject *pName, *pModule, *pDict, *pFunc, *pArgs, *pValue;

    if (argc < 3)
    {
        printf("Usage: exe_name python_source function_name\n");
        return 1;
    }

    // Initialize the Python Interpreter
    Py_Initialize();


    return 0;
}

2 Ответов

Рейтинг:
1

Richard MacCutchan

Компоновщик определенно не находит библиотеку, содержащую определение __imp__Py_Initialize. Вы добавили имя библиотеки в Linker->Input?


Qianfei Li

Вопрос в том, какую библиотеку я должен добавить. Там есть 18 файлов .lib~

Richard MacCutchan

Те, которые требуются по вашей программе! Я понятия не имею, что это может быть, поэтому предлагаю проверить документацию.

Qianfei Li

В документации говорится только: "чтобы включить заголовки, поместите каталоги (если они разные) в путь поиска вашего компилятора для includes." Есть идеи на этот счет?

Richard MacCutchan

Это не имеет ничего общего с заголовками, это линкер вопрос. Вам нужно проверить, какие библиотеки содержат различные функции или классы, которые вы пытаетесь использовать, и добавить их имена в список в свойствах компоновщика вашего проекта, как я уже упоминал выше.

Рейтинг:
0

kiddfrost

Вы добавили свой "питон.ч" к вашему пути ?
Если он все еще не работает, вы можете показать свой *.dsp


Qianfei Li

Да, это так. "Питон.h" находится в Python27/include. Есть еще предложения?

Richard MacCutchan

Это проблема компоновщика, заголовочные файлы используются компилятором.