在我的最新项目,我就遇到一个未定义的参考共享库的方法,一个奇怪的问题。 我搜索的SO,但所有我能找到的要么是C ++相关的(外部的“C”),或没有真正帮助。
在考虑中的库是我的libosm的叉 ,它使用的protobuf以产生去为OpenStreetMap的数据/串行化代码在其二进制格式(.osm.pbf)。 有问题的功能是osmpbf__blob__unpack
但是这仅仅是第一我最终使用,所以我怀疑它的一个普遍问题。
余检查所得libosm.a
与nm
,并且该方法是存在的,出口但由于某些原因而连接它是找不到的。 下面是我目前的标志。 我试图改变秩序,甚至包括所有图书馆两次(在另一个线程建议),但我总是与未定义的引用而告终。
CFLAGS = -v -std=c99 -O3 -Wall -Wextra -pedantic
LIBFLAGS = -losmpbf -lprotobuf-c -lz -lpthread
目前,我完全迷失了什么错误可能是,但我认为这可能是一个小常规错误。 它一直是因为我用c一会儿..任何帮助,将不胜感激。
干杯,弗洛里安
编辑:这是我的完整的Makefile。 我只是做了该名称为变量LIBFLAGS
,因为我用我自己的小规则,但它看起来像我应该使用LDLIBS
和内置的规则这个简单的例子。
CC = gcc
CFLAGS = -v -std=c99 -O3 -Wall -Wextra -pedantic
LIBFLAGS = -losmpbf -lprotobuf-c -lz -lpthread
all: main.x
main.x: main.c
$(CC) $(CFLAGS) $(LIBFLAGS) main.c -o main.x
clean:
rm -rf *.o main.x