我試圖在C++程序中使用C庫。 我想將庫libcoap.a鏈接到我的程序。我已經在Qt中製作了一個巨大的程序,所以無法使用make來代替qmake。在Qt C++中未定義對庫方法的引用
作爲一個簡單的例子,我做了下面的代碼。
connection.h:
#include <string>
#include "coap.h"
void sendData(std::string);
connection.cpp:
#include "connection.h"
#include "coap.h"
coap_uri_t uri;
void sendData(std::string ip){
coap_split_uri((unsigned char *)ip.c_str(), strlen(ip.c_str()), &uri);
}
main.cpp中:
#include "connection.h"
using namespace std;
int main()
{
sendData("[aaaa::c30c:0:0:2]/sen/lt");
return 0;
}
coaptester.pro:
TEMPLATE = app
CONFIG += console
CONFIG -= qt
unix:!macx:!symbian: LIBS += -L$$PWD/../commTest/commTest/libcoap-4.0.1/ -lcoap
INCLUDEPATH += $$PWD/../commTest/commTest/libcoap-4.0.1
DEPENDPATH += $$PWD/../commTest/commTest/libcoap-4.0.1
unix:!macx:!symbian: PRE_TARGETDEPS += $$PWD/../commTest/commTest/libcoap-4.0.1/libcoap.a
SOURCES += main.cpp \
connection.cpp
HEADERS += \
connection.h
我總是得到同樣的錯誤:
undefined reference to `coap_split_uri(unsigned char*, unsigned int, coap_uri_t*)'
collect2: ld returned 1 exit status
在此先感謝。
那麼用extern「C」包圍#include「coap.h」怎麼樣? – 2013-04-10 12:26:15