如何在Qt Creator中为Mosquitto库添加编译器选项
在Qt Creator中正确链接Mosquitto MQTT库的方法
你之前在.pro文件里用QMAKE_CXXFLAGS += -lmosquitto是错误的,因为QMAKE_CXXFLAGS是传递给编译器的参数,而链接库属于链接器的工作范畴,得用Qt专门的LIBS变量来配置。
正确的配置方式有两种:
直接指定链接库
在Widget项目的.pro文件里替换成以下代码:LIBS += -lmosquitto修改完成后,点击Qt Creator上方的「执行qmake」按钮(或右键项目选择「qmake」),再重新编译项目即可。
用pkg-config自动配置(更推荐)
Ubuntu系统中Mosquitto通常会提供.pc配置文件,Qt支持通过pkg-config自动获取库的头文件路径和链接参数,写法如下:CONFIG += link_pkgconfig PKGCONFIG += mosquitto这种方式能自动处理头文件包含和链接参数,比手动写
LIBS更可靠,还能避免路径、库名写错的问题。
你用命令行编译能成功,是因为命令行里直接把-lmosquitto传给了链接器(比如g++ main.cpp -lmosquitto),但Qt里把这个参数放到了编译器阶段,链接器根本没拿到,所以才会出现「undefined reference」错误。
内容的提问来源于stack exchange,提问作者Dean21
相关产品推荐
相关产品推荐

