我正在使用buildroot制作自定义的Linux映像,并且该映像正在运行。
问题是当我更改包“源代码”后运行“ make”以完成图像时,因为它清除了我的自定义包依赖项,并且未找到所有标头。
我对结构有依赖性
################################################################################
#
# hello
#
################################################################################
HELLO_VERSION = 1.0
HELLO_SITE = ./package/hello/src
HELLO_SITE_METHOD = local
HELLO_DEPENDENCIES += directfb libogg libvorbis mpg123 sdl2 sdl2_image sdl2_gfx sdl2_ttf sdl2_mixer sdl2_net
define HELLO_BUILD_CMDS
$(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" LD="$(TARGET_LD)" -C $(@D)
endef
define HELLO_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/hello $(TARGET_DIR)/usr/bin
mkdir -p $(TARGET_DIR)/opt/app
cp -r $(@D)/assets $(TARGET_DIR)/opt/app
endef
$(eval $(generic-package))
当我运行“ make hello-rebuild && make” 时,出现错误,提示所有SDL所包含的都不存在。
出现此错误时,我仅使用“ make sdl2-rebuild”,“ make sdl2_mixer-rebuild”等来重建依赖包。
有人可以帮助我了解如何解决吗?
谢谢。
答案 0 :(得分:0)
通常,只需删除您的output/build/hello-1.0
文件夹并再次键入make
Buildroot用于在输出文件夹中使用图章文件,该文件指示已构建的目标。删除这些文件可以使您重建图像的一部分而没有太多开销。
答案 1 :(得分:0)
在其他地方发布相同答案后,将以正确的方式生成buildroot用户答案,即在编译时使用@STAGING目录而不是@TARGET目录。
在我的makefile中,我使用@ TARGET_DIR / usr / [folder]对其进行编译,但正确的是@ STAGING_DIR / usr [folder]。
谢谢。