我在Linux下的Qt-Widget-Application中使用了mosquitto库并取得了成功。我想为Windows 7 MSVC2015 x64做同样的事情,但我收到链接器错误,我不明白。
在我的.pro文件中使用此代码段,其中C:\ mosquitto是下载和预编译的lib(.dll)的路径。文件夹devel包含标题和.lib文件。
INCLUDEPATH += C:/mosquitto/devel
DEPENDPATH += C:/mosquitto/devel
LIBS += -LC:/mosquitto/devel -LC:/mosquitto -lmosquitto -lmosquittopp
我收到14个未解析符号的链接器错误,好像根本没有库。我可以删除“LIBS”行,但不会获得更多未解析的符号。如果我拼错LIBS-Variable中的一些路径或名称,我会得到找不到mosquitto.lib的错误 - 所以路径通常是正确的。
一个提示可能是来自链接器的警告:library machine type 'X86' conflicts with target machine type 'x64'
。所以我在x64中手动编译了库源代码。之后,仅出现一个未解决的符号。为什么呢?
我没有得到线索。在Linux下它相对容易。我有32 / 64bit的麻烦吗?或者是否有一些我错过的依赖?
更新
带有-hopefully正确编译的x64版本的未解析符号为public: virtual void __cdecl mosqpp::mosquittopp::on_message(struct mosqpp::mosquitto_message const *)
。目前我只打开并发布到MQTT-Connection:我没有明确地使用on_message(...)。