所以,我在网上搜索了所有内容,但找不到任何东西。
我是从 python 开始的,我制作了一个 TKinter 应用程序。起初,我试图将它编译成一个 .exe 文件,但那没有用。所以现在我将 python 嵌入到 C++ 中。每次我尝试编译它(使用 Dev-C++)时,我都会收到错误:
C:\Users\*****\AppData\Local\Temp\ccsqSJ5V.o [program-name].cpp:(.text+0x10): undefined reference to `__imp_Py_Initialize'
C:\Users\*****\AppData\Local\Temp\ccsqSJ5V.o [program-name].cpp:(.text+0x25): undefined reference to `__imp_PyRun_SimpleStringFlags'
C:\Users\*****\AppData\Local\Temp\ccsqSJ5V.o [program-name].cpp:(.text+0x2e): undefined reference to `__imp_Py_Finalize'
F:\Documents\Videos\[program-name]\program\collect2.exe [Error] ld returned 1 exit status
F:代表闪存驱动器。 在 Dev-c++ 选项中,我添加了:
-Wall -I\C:\Users\*****\AppData\Local\Programs\Python\Python35\include
所以这是完整的命令:
g++.exe "F:\Documents\Videos\[program-name]\program\[program-name].cpp" -o "F:\Documents\Videos\[program-name]\program\[program-name].exe" -Wall -I\C:\Users\*****\AppData\Local\Programs\Python\Python35\include -I"C:\Programma's\Dev-C++\MinGW64\include" -I"C:\Programma's\Dev-C++\MinGW64\x86_64-w64-mingw32\include" -I"C:\Programma's\Dev-C++\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include" -I"C:\Programma's\Dev-C++\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++" -I"C:\Users\*****\AppData\Local\Programs\Python\Python35\include" -L"C:\Programma's\Dev-C++\MinGW64\lib" -L"C:\Programma's\Dev-C++\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc
我的问题是:我该如何处理?
请注意:我没有管理员权限,我只是一个标准用户。
Python版本:3.5.1
开发-C++版本:5.11
GCC 版本:我不知道,但如果需要我会找到的:)
编辑:由于 NathanOliver 的重复标记,我会这样问:我必须添加哪些命令行变量才能编译它?
最佳答案
链接器提示因为它找不到一组关于某些 python 东西的引用,事实上我在 g++ 调用中没有看到任何 python 库。
你需要像这样的 -lpython3.5.1 来告诉 g++ 链接到 python 库(假设你的系统中安装了 python,否则你将不得不使用 -L 选项添加到库的路径)。
关于 g++ makefile 和链接的更多资源: https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
关于Python.h编译错误: collect2. exe Id返回1退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37945529/