我有一个几乎没有源代码文件(.c)和头文件的库,输出是共享库(.so)。
当前,我正在使用Makefile生成.so
C = gcc
FLAGS = # -std=gnu99 -Iinclude
CFLAGS = -fPIC -g #-pedantic -Wall -Wextra -ggdb3
LDFLAGS = -shared
DEBUGFLAGS = -O0 -D _DEBUG
RELEASEFLAGS = -O2 -D NDEBUG -combine -fwhole-program
TARGET = libesys.so
SOURCES = $(wildcard *.c)
HEADERS = $(wildcard *.h)
OBJECTS = $(SOURCES:.c=.o)
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) $(FLAGS) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $(TARGET) $(OBJECTS)
clean:
rm *.o libesys.so
我想在我的meta层中创建一个配方,以执行上述操作并生成.so,以便在进行bitbake core-image-minimal时。您能提供一个示例菜谱吗?
答案 0 :(得分:0)
首先,查看来自dev-manual的单个源文件的简单配方,然后尝试首先获得一个简单的配方。您可以正确地将此食谱放在自己的meta层中。
也可以看看this section,其中涵盖了带有Makefile的食谱。
这是让您入门的东西
DESCRIPTION = "My test recipe"
LICENSE = "CLOSED"
PR = "r1"
S = "${WORKDIR}
FILES_${PN} = "libesys.so"
# Better to use a git repo for large projects
SRC_URI="file://xxxxxx \
file://yyyyyy \
"
do_install(){
oe_runmake install DESTDIR=${D} INCLUDEDIR=${includedir}
install -d ${D}${libdir}
install -m 0644 libesys.so ${D}${libdir}
}
BBCLASSEXTEND = "native"
您还需要修改core-image-minimal
食谱,在食谱中添加一个“ depend”,以便将其添加到lib中。
DEPENDS+="your_recipe_name_here"
您可以将其直接添加到配方本身,也可以通过可驻留在图层中的.bbappends文件添加。