我试图使用gcc和makefile将一些C包装器函数编译到python3.4,但是我没有成功地找到正确的编译和链接标志。我用的是Ubuntu 14
现在我在makefile中尝试的是:
CC = gcc
CFLAGS = -Wall -std=c99 `pkg-config --cflags python3`
LDFLAGS = `pkg-config --libs python3`
final: functions.o wrapper.o
$(CC) -o functions.o $(CFLAGS) $(LDFLAGS)
functions.o: functions.c functions.h
$(CC) $(CFLAGS) -c functions.c
wrapper.o: wrapper.c
$(CC) $(CFLAGS) -g -c wrapper.c
使用此命令可获取以下错误:
^{pr2}$另外,我在makefile方面没有什么经验,所以如果我在这个过程中做错了什么,我就不会这么做
您可能应该找到一个关于Makefiles的好教程,但是这个教程应该让您开始:
如果要为Python创建C包装器,则需要创建一个共享对象。要做到这一点,至少在编译时必须使用
-fPIC
,在链接时使用-shared
。上面的示例Makefile使用内置规则将.c
文件编译为.o
文件。本例中的共享对象将被创建为myfunctions.so
,但您可以将myfunctions.so:
更改为您喜欢调用的任何名称。可以使用make all
调用这个Makefile来生成共享对象。在相关问题 更多 >
编程相关推荐