On Mon, Feb 16, 2009 at 6:25 AM, Xealot <xea...@gmail.com> wrote: > Hello everyone, > > I appologize if this is not the correct mailing list for this kind of > question. > > I want to use Python from my application, i found a couple of ways to do > this. either use P4D in Windows (which would not compile on my 64 bit > system, and is not cross platform), I can translate the necessary functions > and classes from the python header files myself (h2pas wont work) and work > directly against the library.. > > Or the third option, which I tried on linux.. which is to write the code > that actually uses python in C, compile it with gcc and then link the > resulting .o file into the rest of my application and use that. With this > method, I can use all of pythons API without having to translate its > headers, This trick worked in Linux when I tested it, but im having issues > in Windows > > Whilst the compile of the actual C code worked, I simply cannot use the > Python25.dll from my code, Heres how I did it: > > unit pyinterface; > > {$link py.o} > {$linklib python25} > {$linklib c} > > On windows, I used the MingW compiler so linklib c was to be replaced with > the appropriate libraries (msvcrt etc.) but this is not the issue, > > the problem here is that when I try to linklib python25, It produces: > > C:\test\C>C:\FPC\2.2.2\bin\i386-win32\ppcrossx64.exe > -FlE:\mingw-w64-bin_i686-mi > ngw_20090213\x86_64-pc-mingw32\lib64 -FlC:\test\C -FoE:\Python25\libs > foo.pas > foo.pas(19,1) Error: Import library not found for python25 > > doesnt matter if i put python25 or python25.dll in the linklib line, and the > DLL is present both in my System32 directory, as well as in the local one > where all the source code for my demo project is in. >
a linklib under mingw will generate an option like -lpython25 which makes ld.exe search for libpython25.a in the standard library paths. you have two options: you can generate an import library libpython25.a from python25.dll using dlltool. I forgot the exact switches so google for it. The second option is autolinking: you link directly with the DLL. Mingw supports it but the name of the dll needs to be passed to it directly without the -l switch. Not sure whether that can be done with linklib. Cheers, -Krishna -- I love deadlines. I like the whooshing sound they make as they fly by. -- Douglas Adams _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal