我已使用此list comprehension在我的Rpi中安装了mosquitto lib
。
/usr/local/bin
有mosquitto_pub and mosquitto_sub
,mosquitto服务器deamon位于/usr/local/sbin
。
然后尝试链接我的cmake文件中的库,如下所示。
cmake_minimum_required(VERSION 2.6)
PROJECT(MosquittoTest)
# The version number.
set (VERSION_MAJOR 1)
set (VERSION_MINOR 0)
include_directories("${PROJECT_BINARY_DIR}")
# Linked libariries
#For MQTT
#location of raspicam's cmake file is /usr/src/raspicam-0.1.3/build
link_directories(/usr/local/sbin)
target_link_libraries (MosquittoTest mosquitto)
ADD_EXECUTABLE(MosquittoTest MosquittoTest.cpp)
# add the install targets
install (TARGETS MosquittoTest DESTINATION bin)
install (FILES MosquittoInterface.h DESTINATION include)
然后我有错误,因为无法为目标MosquittoTest指定链接库。
有人将gcc make中的mosquitto lib链接为
CC = gcc
CFLAGS = -I
DEPS = mosquitto.h
LIBS = -llibmosquitto
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
make: test.c
$(CC) -m32 -Wall -o $@ $^ $(CFLAGS) $(LIBS)
.PHONY: clean
我的cmake文件有什么问题?
答案 0 :(得分:1)
使用现代 CMake,您可以像这样使用 pkg-config 导入的目标:
cmake_minimum_required(VERSION 3.10)
project(MosquittoTest)
find_package(PkgConfig REQUIRED)
pkg_check_modules(Mosquitto REQUIRED IMPORTED_TARGET libmosquitto)
add_executable(MosquittoTest MosquittoTest.cpp)
target_link_library(MosquittoTest PkgConfig::Mosquitto)
将为您设置所有编译选项、链接选项、链接目标等。
答案 1 :(得分:0)
mosquitto图书馆被称为lmosquitto而不是llibmosquitto。
JimsFridge: JimsFridge.cpp StopWatch.cpp
g++ JimsFridge.cpp StopWatch.cpp -o JimsFridge -lwiringPi -lstdc++ -lmosquitto