Я пытаюсь запустить пример Paho MQTT в C на моем Raspberry Pi: https://www.eclipse.org/paho/clients/c/
Я пытался просто загрузить готовые двоичные файлы и установить ссылку на lpaho-mqtt3c
Я поместил эту библиотеку здесь: /home/pi/mqtt_C_testing/Eclipse-Paho-MQTT-C-1.3.1-Linux/lib
И добавил: LD_LIBRARY_PATH=/home/pi/mqtt_C_testing/Eclipse-Paho-MQTT-C-1.3.1-Linux/lib/
Мой make-файл выглядит так:
IDIR = /home/pi/mqtt_C_testing/Eclipse-Paho-MQTT-C-1.3.1-Linux/include
LDIR = /home/pi/mqtt_C_testing/Eclipse-Paho-MQTT-C-1.3.1-Linux/lib
CC = gcc
LD = gcc
CFLAGS = -Wall
LIBS = -lpaho-mqtt3c
PROG_NAME = main
# directories in project
BIN = bin
SRC = src
OBJ = obj
INCLUDE = include
INCLUDES = -I./$(INCLUDE)
all : $(PROG_NAME)
$(PROG_NAME) : $(BIN)/$$@
$(BIN)/% : $(OBJ)/%.o
$(CC) $(CFLAGS) $^ -o $@ $(LIBS)
$(BIN)/main : $(addprefix $(OBJ)/, \
main.o)
$(OBJ)/main.o : $(addprefix $(INCLUDE)/, \
MQTTProperties.h MQTTReasonCodes.h MQTTSubscribeOpts.h MQTTClient.h \
MQTTClientPersistence.h MQTTAsync.h)
$(OBJ)/%.o : $(SRC)/%.c
$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
.PHONY: clean
clean:
rm -f $(OBJ)/*.o
Когда я пытаюсь собрать, g cc не может найти библиотеку:
gcc -Wall obj/main.o -o bin/main -lpaho-mqtt3c
/usr/bin/ld: cannot find -lpaho-mqtt3c
collect2: error: ld returned 1 exit status
make: *** [makefile:26: bin/main] Error 1
Моя структура каталогов такая:
pi@raspberrypi:~/mqtt_C_testing $ ls
bin Eclipse-Paho-MQTT-C-1.3.1-Linux include makefile obj src
И у меня есть main. c ( файл примера mqtt) в src
и я поместил все заголовочные файлы MQTT в include
.
Библиотечные файлы для mqtt находятся здесь: /home/pi/mqtt_C_testing/Eclipse-Paho-MQTT-C-1.3.1-Linux/lib
Я действительно не уверен, что я Я здесь правильный путь, поэтому любая помощь приветствуется. Спасибо!