Ich versuche, ein C++ Skript zu machen, die ein paar einfache Python Code ausgeführt wird:g ++: Keine solche Datei oder das Verzeichnis
// t.cpp
#include <Python.h>
int main(int argc, char* argv[])
{
Py_Initialize();
PyRun_SimpleString("print('TEST PASSED')");
Py_Finalize();
return 0;
}
Nach g++ t.cpp
ausgeführt wird, erhalte ich die Fehlermeldung:
t.cpp:1:20: fatal error: Python.h: No such file or directory
compilation terminated
ich habe durch die Installation python3-dev
viele ähnliche Fragen, die alle spezifisch für eine IDE oder andere Entwicklungssoftware, oder gelöst wurden gefunden. Das python3-dev
Paket ist bereits installiert ist, und ich auch manuell einschließlich Header, wenn andere zu kompilieren versuchen:
g++ t.cpp -I ~/.virtualenvs/MainEnv/include/python3.5m/Python.h
g++ t.cpp -I /usr/include/python3.5m/Python.h
Weder nichts ändert.
Wie kann ich diesen Fehler beheben?
UPDATE: Ich fand, dass g++ t.cpp -I /usr/include/python3.5/
mit dem Header zu enthalten scheint, aber dann läuft es mehr Fehler in:
t.cpp:(.text+0x10): undefined reference to `Py_Initialize'
t.cpp:(.text+0x1f): undefined reference to `PyRun_SimpleStringFlags'
t.cpp:(.text+0x24): undefined reference to `Py_Finalize'
collect2: error: ld returned 1 exit status
Ich erwähnte unter "UPDATE", dass das Hinzufügen der "-I" -Flagge die Header korrekt aufzunehmen schien, aber in mehr Fehler geriet. '-lpython3.5' und' -lpython3' return'/usr/bin/ld: -lpython3 (.5) ' – Nelson
kann nicht gefunden werden Ah, auf ubuntu ist es' -lpython3.5m' –
Natürlich war ich 1 Buchstabe aus. Vielen Dank, es funktioniert jetzt perfekt! – Nelson