I recently installed KDevelop 4 for C++ development on my Macbook Pro running Ubuntu 12.04 LTS.
I want to embed Python application in my C++ code. To do that, one needs to include the Python.h header file. So, I did that.
#include <iostream>
#include <Python.h>
int main(int argc, char **argv) {
Py_Initialize();
return 0;
}
However, on running, I received the following response from the IDE:
fatal error: Python.h: No such file or directory
However, I found the problem soon enough. I hadn't downloaded the python-dev package. So, I did that. I ran again but the same error was there again. So, I thought it must be an issue with the header file not being included by KDevelop. Thus, I added the relevant folder to the include path and KDevelop immediately recognized that by removing the red underline beneath the second include statement in the code above.
But still, the problem remains. I get the same error. Would appreciate any help or inputs you guys can provide :-)
Thanks a lot.
EDIT: Some details that I missed mentioning earlier are that KDevelop is using cmake for my project. I guess the reason my problem is occurring is because cmake doesn't know the appropriate compiler and linker paths. I would appreciate any help in setting the correct paths for cmake.
I assume that it is already installed. Find the path with:
and when you have done so, when compiling add
worked for me on a "Python.h: No such file or directory" issue
You want to include the following on the compile line:
and this on the link line:
Most likely
Python.h
is not in your build systems' include path. You can find out where your Python.h is by runningThis will also verify that the python-dev package actually installed a Python.h.
I don't have a kdevelop here, but most IDEs have a setting somewhere where you can specify the include path used by the build system, and you should be able to add the path where Python.h lies there.
EDIT:
As Nikolai implied, you will also need to add the correct library path for the linking stage. (Output of python-config --ldflags).
For Linux Ubuntu Putty Users try this:
then compile it
then run it
In your CMakeLists.txt, try adding the following:
For details of the commands, run: