基于wxObject的类无法链接

时间:2011-08-18 17:12:54

标签: wxwidgets

首先,这是在Linux上构建的。

我们有一个基于wxObjects的API(我们不使用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 :(得分:0)

使用

wx-config --cxxflags --libs base 

给了我丢失的项目,这些项目允许我正确地构建项目。毫无疑问,这是我五年前使用的。