En Tue, 13 Oct 2009 18:08:53 -0300, Christopher Lloyd
<ll...@btinternet.com> escribió:
#include <iostream>
#include <string>
#include "Python.h"
int main()
{
std::cout << "Starting Python Demo Test" << std::endl;
Py_Initialize(); // initialize python
std::string str;
std::getline( std::cin, str );
while( str != "end" )
{
PyRun_SimpleString( const_cast<char*>( str.c_str() ) );
std::getline( std::cin, str );
}
Py_Finalize(); // shut down python
std::cout << "Demo Complete!" << std::endl;
return 0;
}
If I try to compile this in MS Visual C++ 2008 (debug mode), I get the
following error:
LINK : fatal error LNK1104: cannot open file 'python26_d.lib'
For a debug build of your program, you require a debug build of Python. A
release build should compile and link OK with the pre-built Python
libraries you got, as you already noticed.
So, what happens if I try compiling the above C++ in release mode?
Actually, nothing - It compiles just fine. However, upon running the
resulting program, my command line box displays the following:
Starting Python Demo Test
That's all. The program has hung halfway through and the test isn't
completed.
Hung? Or waiting for you to input some Python expression to be evaluated?
That's what the std::getline( std::cin, str ) line does. Type 2+3 for
example - you should get the answer.
It's been suggested that I replace the first part of my C++ code with
the following, and then try to compile in release mode:
#ifdef _DEBUG
#undef _DEBUG
#include <Python.h>
#define _DEBUG
#else
#include <Python.h>
#endif
No, don't do that. Just compile your application in release mode.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list