Класс на основе wxObject не может связать - PullRequest
1 голос
/ 18 августа 2011

Во-первых, это строится на Linux.

У нас есть API, основанный на wxObjects (мы не используем объекты GUI). Наши классы определены следующим образом:

#include <wx/wx.h>

class apibaseclass : public wxObject
{
    apibaseclass();
    ~apibaseclass();
}

Около пяти лет назад это скомпилировано и связано просто отлично. Меня попросили внести изменения, и теперь я получаю следующую ошибку:

неопределенная ссылка на wxObject::wxObject()'/home/lloyd/Projects/wxtestprogram/main.cpp:7: undefined reference to wxObject :: wxObject () '

Это программа, которую я использовал для проверки работоспособности:

#include <iostream>
#include <wx/wx.h>

class blah : public wxObject
{
public:
int x;

blah();
virtual ~blah();

void setvalue(int value);
int getvalue();
};

blah::blah()
{
}


blah::~blah()
{
}

void blah::setvalue(int value)
{
    x = value;
}

int blah::getvalue()
{
    return x;
}


using namespace std;

int main()
{
    class blah *testvalue = new blah();

    testvalue->setvalue(15);

    wxPrintf(wxT("Hello World 2 %d\r\n"), testvalue->getvalue());

    wxString str1 = wxT("Linux");

    wxString str2 = wxT("Operating");

    wxString str3 = wxT("System");

    wxString str;
    str = str1 + wxT(" ") + str2 + wxT(" ") + str3;

    wxPuts(str);
    wxPrintf(wxGetHomeDir());


    long int mem = wxGetFreeMemory();

    wxPrintf(wxT("Memory: %ld\n"), mem);
    return 0;
}

Что беспокоит, так это то, что если я заменю «public wxObject» на «public wxString», то он просто отлично связывается. Почему я не могу получить доступ к wxObject?!?

ПРИМЕЧАНИЕ. В прошлом я никогда не ссылался ни на что, кроме libwx_baseu-2.6.so. И фактически, когда я собираю без GUI, он собирает только libwx_baseu-2.6, libwx_baseu_net-2.6 и libwx_baseu_xml-2.6.

Что мне нужно сделать, чтобы все налаживалось и снова связывалось с минимальной суматохой и суетой?

1 Ответ

0 голосов
/ 22 сентября 2011

Использование

wx-config --cxxflags --libs base 

дал мне недостающие элементы, которые позволили мне правильно построить проект. Без сомнения, это то, что я использовал пять лет назад.

...