我正在尝试将Python3.7嵌入Windows10中的C应用程序中。你知道吗
#define PY_SSIZE_T_CLEAN
#include <Python.h>
int main () {
Py_Initialize();
PyRun_SimpleString("print('OK')");
}
我使用以下命令进行编译:(MinGW-W64-builds-4.3.4,gcc7.3.0)
gcc "-IC:/Program Files/Python37_64/include" "-LC:/Program Files/Python37_64/libs" -lpython37 main.c
但它给出了以下错误:
C:\Users\Paul\AppData\Local\Temp\ccKQF3zu.o:main.c:(.text+0x10): undefined reference to `__imp_Py_Initialize'
C:\Users\Paul\AppData\Local\Temp\ccKQF3zu.o:main.c:(.text+0x25): undefined reference to `__imp_PyRun_SimpleStringFlags'
collect2.exe: error: ld returned 1 exit status
奇怪的是,当我在Go 1.13(Golang)中尝试同样的方法时,它确实有效:
package main
/*
#cgo CFLAGS: "-IC:/Program Files/Python37_64/include"
#cgo LDFLAGS: "-LC:/Program Files/Python37_64/libs" -lpython37
#define PY_SSIZE_T_CLEAN
#include <Python.h>
void run () {
Py_Initialize();
PyRun_SimpleString("print('OK')");
}
*/
import "C"
func main () {
C.run()
}
编译命令:
go build python.go
如何解决这个问题?你知道吗
我在this answer中找到了解决方案。你知道吗
参数
main.c
必须放在-lpython37
之前。你知道吗所以这是可行的:
相关问题 更多 >
编程相关推荐