【发布时间】:2014-11-05 03:11:15
【问题描述】:
我正在尝试使用 gcc 和 makefile 将一些 C 包装函数编译到 Python 3.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
使用这个得到我这个错误:
/usr/bin/ld: /usr/local/lib/libpython3.4m.a(dynload_shlib.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
另外,我在 makefile 方面的经验很少,所以如果我在此过程中做错了什么,我不会这样做
【问题讨论】:
-
@MichaelPetch 是的,得到了同样的错误
-
针对静态库构建不会让您满意。