kiso.masaki
2018年11月7日 11時46分
お世話になります。
以下の開発環境でC++のMosquittoクライアント開発を行っております。
mosquitto関連のパッケージはインストールしていますが、クロスコンパイルのMake時に
リンカーオプションの「-lmosquitto」が見つからないエラーが発生します。
解決方法や、不足点あれば、ご教示ください。
実機:Armadillo-IoT G3
開発環境:ATDE7
クロスコンパイラ:arm-linux-gnueabihf
■環境
atmark@atde7:~$ uname -a Linux atde7 4.9.0-8-686-pae #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) i686 GNU/Linux
■make時のエラー
usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: 互換性のないを //usr/lib/libmosquitto.so スキップしました (-lmosquitto を探索している時) /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lmosquitto が見つかりません
■mosquitto関連のパッケージ
atmark@atde7:~$ dpkg -l | grep mosquitto ii libmosquitto-dev:i386 1.4.10-3+deb9u2 i386 MQTT version 3.1/3.1.1 client library, development files ii libmosquitto1:i386 1.4.10-3+deb9u2 i386 MQTT version 3.1/3.1.1 client library ii mosquitto 1.4.10-3+deb9u2 i386 MQTT version 3.1/3.1.1 compatible message broker ii mosquitto-clients 1.4.10-3+deb9u2 i386 Mosquitto command line MQTT clients ii mosquitto-dev 1.4.10-3+deb9u2 all Development files for Mosquitto
■Makefile
CROSS :=arm-linux-gnueabihf ifneq ($(CROSS),) CROSS_PREFIX := $(CROSS)- endif COMPILER = $(CROSS_PREFIX)g++ CFLAGS = -Wall -std=c++0x -pthread LDFLAGS = -lmosquitto INCLUDE = -I./include -I/usr/arm-linux-gnueabihf TARGET = ./bin/$(shell basename `readlink -f .`) SRCDIR = ./src ifeq "$(strip $(SRCDIR))" "" SRCDIR = . endif SOURCES = $(wildcard $(SRCDIR)/*.cpp) OBJDIR = ./obj ifeq "$(strip $(OBJDIR))" "" OBJDIR = . endif OBJECTS = $(addprefix $(OBJDIR)/, $(notdir $(SOURCES:.cpp=.o))) DEPENDS = $(OBJECTS:.o=.d) $(TARGET): $(OBJECTS) $(LIBS) $(COMPILER) -o $@ $^ $(LDFLAGS) $(OBJDIR)/%.o: $(SRCDIR)/%.cpp -mkdir -p $(OBJDIR) $(COMPILER) $(CFLAGS) $(INCLUDE) -o $@ -c $< all: clean $(TARGET) clean: -rm -f $(OBJECTS) $(DEPENDS) $(TARGET) -include $(DEPENDS)
コメント
kiso.masaki
at_koseki
2018年11月7日 13時22分
古関です。
libmosquitto-dev の armhf版がインストールされていないため
エラーになるのではないでしょうか。
# sudo apt-get install libmosquitto-dev:armhf
を実行しインストール後、ビルドできるか試していただけますでしょうか。