1

C++ プログラムで C ライブラリを使用しようとしています。ライブラリ libcoap.a を自分のプログラムにリンクしたいと考えています。すでにQtで巨大なプログラムを作成しているため、qmakeの代わりにmakeを使用しても解決できません。

簡単な例として、次のコードを作成しました。

接続.h:

#include <string>
#include "coap.h"
void sendData(std::string);

接続.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

前もって感謝します。

4

1 に答える 1