我試圖建立其使用Eclipse泛美衛生組織MQTT庫中的Visual C++ Win 32項目在Visual C++的Win32項目時 - 見https://eclipse.org/paho/clients/c/ 庫中取得的2個文件形式:LNK2019錯誤編譯與Eclipse泛美衛生組織MQTT
- 泛美衛生組織,mqtt3c.lib
- 泛美衛生組織,mqtt3c.dll
庫最初是用C寫的 - 我與預編譯的二進制嘗試和編譯它自己的時候。
在我的客戶端Visual C++項目中,在鏈接器選項下,我在「附加庫依賴」字段中直接在「附加庫目錄」字段和paho-mqtt3c.lib文件中包含了正確的庫路徑。但是當我嘗試構建時,鏈接器會爲每個使用的庫函數發出一個錯誤。所有錯誤都有着相似的格式:
錯誤2錯誤LNK2019:無法解析的外部符號 「INT __cdecl MQTTClient_connect(void *的,結構MQTTClient_connectOptions *)」 函數_mainÇ引用(MQTTClient_connect @@ YAHPAXPAUMQTTClient_connectOptions @@@ Z?) :\項目\剪貼簿\ MQTT_Example \ MQTT_Example \ main.obj MQTT_Example
我的代碼如下:
#include <MQTTClient.h>
#include <MQTTClientPersistence.h>
: : :
// Start MQTT connection
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
MQTTClient_message pubmsg = MQTTClient_message_initializer;
MQTTClient_deliveryToken token;
// Convert CString to char*
int connectResponse;
char* szBuf = strBroker.GetBuffer(strBroker.GetLength()) ;
// Create client
MQTTClient_create(&client, szBuf, "MQTTTestClient", MQTTCLIENT_PERSISTENCE_NONE, NULL);
conn_opts.keepAliveInterval = 20;
conn_opts.cleansession = 1;
MQTTClient_setCallbacks(client, NULL, NULL, msgarrvd, NULL);
// Connect to broker
if ((connectResponse = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
{
// Oops.. that didn't work!
}
有沒有人有關於如何解決這個任何想法? (我知道有數百萬LNK2019的問題,但我找不到任何解決我的問題到目前爲止......)