我有一个python文件要在板上运行。因此我想将python解释器(用C编写)嵌入到电路板中。我设法编写了运行Python文件的单独C项目。它可以按我的意愿编译和运行。这是相同的makefile:-

CC=gcc
CFLAGS=-I python3.5 -I config -I . -c -w
LDFLAGS= -lpython3.5m -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions

all: classifier trainer test link

test:
    $(CC) $(CFLAGS) test.c

trainer: Trainer.c
    $(CC) $(CFLAGS) Trainer.c
    $(CC) Trainer.o $(LDFLAGS) -o Trainer

.ONESHELL:
classifier: Classifier.c
    $(CC) $(CFLAGS) Classifier.c
    # $(CC) Classifier.o $(LLFLAGS) -o Classifier

link:
    $(CC) test.o Classifier.o $(LDFLAGS) -o test

clean:
    rm -f Trainer.o Trainer Classifier.o Classifier

http://dpaste.com/3BCY2RE是项目“hello”的整个目录(不是示例中的目录)。
我在我的“hello.c”中包含了“Classifier.h”,我得到了以下错误:http://dpaste.com/3KKCF84
编译器包含选项(没有preinclude):
"${CG_TOOL_ROOT}/include"
"${workspace_loc:/${ProjName}/TerrainPredict}"
"${workspace_loc:/${ProjName}/TerrainPredict/config}"
"${workspace_loc:/${ProjName}/TerrainPredict/python3.5}"
"${SW_ROOT}/examples/boards/ek-tm4c1294xl"
"${SW_ROOT}"

链接器文件搜索路径:
"libc.a"
"${workspace_loc:/${ProjName}/TerrainPredict/libterrainclf.a}"
"${SW_ROOT}/driverlib/ccs/Debug/driverlib.lib"

以及:
"${CG_TOOL_ROOT}/lib"
"${workspace_loc:/hello/TerrainPredict/libterrainclf.a}"
"${CG_TOOL_ROOT}/include"

我的一些配置有问题吗?或者这是python解释器的问题吗?非常感谢您的帮助
编辑:-
正如@KevinDTimm所建议的,问题是我的环境没有pyconfig.h。python需要这个文件来定义重要的变量,比如系统时钟源。我试着在现有的中删除安全检查。我得到的第一个错误是在pyconfig.h中,因为:
"_PyTime_t need signed 64-bit integer type"

因为下面的代码块:
#ifdef PY_INT64_T
/* _PyTime_t: Python timestamp with subsecond precision. It can be used to
   store a duration, and so indirectly a date (related to another date, like
   UNIX epoch). */
typedef PY_INT64_T _PyTime_t;
#define _PyTime_MIN PY_LLONG_MIN
#define _PyTime_MAX PY_LLONG_MAX
#else
#  error "_PyTime_t need signed 64-bit integer type"
#endif

在我看来,它需要一个存储时间的变量。我需要帮助分配那个变量。

最佳答案

From the linked problem
多重架构错误消息有点误导人。它不是因为有一个多架构的问题而失败,而是因为有一个多操作系统的问题而失败。/usr/include/python*/pyconfig.h正试图找出从何处找到真正的pyconfig.h,由于它不知道,所以它正在释放。
实际上,您需要为目标环境生成pyconfig.h。我不知道是什么产生了pyconfig.h,也许是从源代码构建cython?pyconfig.h看起来像是由gnu autoconf生成的,因此在生成它时不应该有任何大问题。

10-04 15:04