私は、このルートプログラムを使用してラズベリーパイからさまざまなUSBポートをオン/オフにするための新しいパッケージをビルドしようとしています。buildroot:hub-ctrlの新しいパッケージをBuidling
https://github.com/codazoda/hub-ctrl.c
そして、これは私が構築したhub-ctrl.mkです:
GITリポジトリは、このサイト上にある今まで
################################################################################
#
# hub-ctrl
#
################################################################################
HUB_CTRL_VERSION = 42095e522859059e8a5f4ec05c1e3def01a870a9
HUB_CTRL_SITE = https://github.com/codazoda/hub-ctrl.c
HUB_CTRL_SITE_METHOD = git
HUB_CTRL_LICENSE = GPLv2+
define HUB_CTRL_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
endef
define HUB_CTRL_INSTALL_TARGET_CMDS
# Install predictead application
$(INSTALL) -m 4755 -D $(@D)/hub-ctrl $(TARGET_DIR)/usr/sbin/hub-ctrl;
endef
$(eval $(generic-package))
、すべてがOKです。しかし、リポジトリにはMakefileがないので、自分でビルドすることにしましたが、エラーがあります。私はインクルードとライブラリのフォルダをリンクする方法を知らない。私は専門家のメークファイルビルではないので、何か助けが必要です。
ハブctrl.c:12:17:致命的なエラー:usb.h:そのようなファイルやディレクトリ の#include
PROJECT_ROOT = .
OUTDIR = $(PROJECT_ROOT)/bin
BASE_NAME = hub-ctrl
NAME = $(BASE_NAME)$(D)
OBJ = $(BASE_NAME).o
INC =
LIBS = -lusb
MKDIR = mkdir -p
MV = mv
# Master rule
.PHONY: all
all: $(NAME)
# Output binary
$(NAME): $(OBJ)
$(CC) $(CFLAGS) $(INC) $(OBJ) -o $(BASE_NAME) $(LIBS)
[email protected]$(MV) $(BASE_NAME) $(OUTDIR)/$(BASE_NAME)
rm *.o
# Intermediate object files
$(OBJ): %.o: %.c
@$(MKDIR) $(OUTDIR)
$(CC) $(CFLAGS) $(LIBS) $(INC) -c $<
# Cleanup intermediate objects
.PHONY: clean_obj
clean_obj:
rm -f $(OBJ)
@echo "obj cleaned up!"
# Cleanup everything
.PHONY: clean
clean: clean_obj
rm -rf $(OUTDIR)/$(BASE_NAME)
@echo "all cleaned up!"
これは私が持っているエラーがある:これは私のMakefileです ^ 編集が終了しました。
提案がありますか?
よろしくお願いいたします。
hub-ctrl.c maintainerが働いているMakefileをアップストリームに追加することは容易になります。 [CMake](https://cmake.org/)はもっと良いでしょう。また、[pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)を使用してlibusbパスを設定する必要があります。 Btw。 libusbはあなたの* .mkファイルに依存関係として追加する必要があります。 – yegorich
このhub-ctrl.cは、2017.11-rc1以降のBuildrootにあるuhubctl(https://github.com/mvp/uhubctl)に関連していますか? –
はいピーター、そうです。私は別のプラットフォームのリポジトリを持っているのでbuildroot-2016.02で作業しています。簡単な方法でbuildroot-2017.11-rc1に移行することはできませんが、このパッケージは私のbuildroot-2016.02ローカルリポジトリにあります。どうもありがとうございました。 – oscargomezf