Gå til innhold

Embedde Python 3.1.2 i C / C++.


Gjest Slettet+9871234

Anbefalte innlegg

Gjest Slettet+9871234

Jeg viser til Python 3.1.2 dokumentasjonen:

 

5. Embedding Python in Another Application

 

Underavsnitt: 5.1. Very High Level Embedding

 

og eksemplet:

 

#include <Python.h>

int
main(int argc, char *argv[])
{
 Py_Initialize();
 PyRun_SimpleString("from time import time,ctime\n"
                    "print('Today is', ctime(time()))\n");
 Py_Finalize();
 return 0;
}

Jeg legger Python's header filer i min C include mappe. Det går greit, og kompileringen går også greit til .obj filer, men som ventet får jeg lenke feil:

 

Error: Unresolved external '_Py_Initialize' ...

 

1. Mangler jeg noen .dll og / eller .lib filer?

2. Hvis ja, må disse også kompileres og lenkes sammen med programmet ovenfor?

 

Avsnitt: 5.6. Linking Requirements i dokumentasjonen gjør meg ikke så mye klokere.

 

Jeg benytter Windows Vista og Embarcadero's C++Builder 2010 command line compiler bcc32 som har en rekke opsjoner, blant annet:

 

C:\>bcc32 -h -A

C:\Documents and Settings\khouser>bcc32 -h -A

C++ 6.20 for Win32 Copyright © 1993-2009 Embarcadero

Available options (* = default setting, xxx = has sub-options: use -h -X):

(Note: -X- or -w-XXX will usually undo whatever was set or unset by -X)

-A Enable ANSI conformance

-AF Use SUN Forte keywords and extensions

-AG Use GNU keywords and extensions

-AK Use Kernighan and Ritchie (K&R) keywords and extensions

-AT Use C++ keywords and extensions (also -A-)

-AU Use UNIX System V keywords and extensions

-An Use C99 keywords and extensions

-Ax Reserve keywords for future C++-0x extensions

 

så selve kompilatoren skulle ikke ha noe med problemet å gjøre.

 

Når jeg søker på:

 

python source code

 

er dette http://www.python.org/download/ første treff. Er det der kildekoden lastes ned og er det den som skal brukes?

Endret av Slettet+9871234
Lenke til kommentar
Videoannonse
Annonse

1. Mangler jeg noen .dll og / eller .lib filer?

2. Hvis ja, må disse også kompileres og lenkes sammen med programmet ovenfor?

 

Ja du må fortelle linkeren, eller den dynamiske linkeren hvor den finner disse.

 

Hvor fikk du Python.h i fra? Sannsynligvis ligger det runtime bibliotek sammen med disse. Jeg kjenner ikke kompilatoren du nevner, men i f.eks. gcc gir man path til statiske bibliotek med -L og dynamiske med -Wl,-rpath, (eller bruke env var eller conf fil for den dynamiske linkeren)

Lenke til kommentar
Gjest Slettet+9871234

Hvor fikk du Python.h i fra?

Fra siden jeg lastet ned Python kildekoden.

 

Sannsynligvis ligger det runtime bibliotek sammen med disse.

Du mener i lib og / eller dll mapper?

 

De største problemene med programmering er som alltid konfigurering. Der finnes noen hederlige unntak med glimrende topp / ned dokumentasjon der en begynner med ulike typer

konfigurering. Veldig få gjør det svært enkelt. Sekunder / minutter / timer er lang tid

i den digitale / elektroniske tidsalder.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...