wxRichTextCtrl не работает?

Глобальная область *.h:

#include <wx/sizer.h>
#include <wx/window.h>
#include <wx/richtext/richtextctrl.h>

*.cpp файл:

wxTextCtrl* daTextCtrl;
wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);

wxFrame *frame2 = new wxFrame(NULL, -1, wxT("Dialog Title"), wxPoint(50, 50), wxSize(500, 500));
frame2->Show(true);

wxWindow *windo = new wxWindow(frame2, wxID_ANY, wxDefaultPosition, wxSize(500,500));

daTextCtrl = new wxRichTextCtrl(windo,
                    wxID_ANY,
                    _T("a"),
                    wxDefaultPosition,
                    wxSize(350,100),
                    wxVSCROLL);



windo->Show();

Ошибка:

неопределенная ссылка на `wxRichTextCtrl::wxRichTextCtrl(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxValidator const&, wxString const&)'|


person Marin Sagovac    schedule 12.07.2014    source источник
comment
Я думаю, что wxRichTextCtrl не может быть для окна или фрейма. wxTextCtrl работает нормально, а форматированный текст — нет.   -  person Marin Sagovac    schedule 12.07.2014
comment
Если перечитать ошибку, то на самом деле это ошибка компоновщика. Итак, вы связываетесь с библиотекой, в которой определен элемент управления? Помните, что wxWidgets разбросан по разным библиотекам.   -  person Some programmer dude    schedule 12.07.2014
comment
Линкер ar. Я пытаюсь изменить #include <wx/richtext/richtextctrl.h> на #include <wx/richtextctrl.h> и говорит, что не найдено. Так что у меня не работает только richtextctrl, но отлично работает другой элемент управления. Это wxWidgets 3.0 в Ubuntu 14.04.   -  person Marin Sagovac    schedule 12.07.2014
comment
ar — это специальная команда для создания статических библиотек в POSIX-системах, это аббревиатура от слова «архиватор». См., например. эта страница, на которой перечислены различные библиотеки для полной установки wxWidgets. Особенно обратите внимание на эту библиотеку, которая должна дать вам несколько советов, что искать .   -  person Some programmer dude    schedule 12.07.2014
comment
Он МОНОЛИТИЧЕСКИЙ, не определенный в gcc++ из компилятора GNU GCC. Я не уверен, как настроить компилятор GNU GCC. В мастере не существует версий 3.0 и 2.8.   -  person Marin Sagovac    schedule 13.07.2014


Ответы (2)


Вам нужно явно связать библиотеку RichText, она не включена в список библиотек по умолчанию, выводимых wx-config --libs, который вы предположительно используете. т.е. вам нужно wx-config --libs std,richtext.

person VZ.    schedule 13.07.2014
comment
В параметрах сборки для других параметров в Codeblocks я изменил на: wx-config --libs richtext --cflags, но он говорит, что lwx_gtk2u_richtext-3.0 нет такого файла/каталога - person Marin Sagovac; 13.07.2014
comment
Используя терминал wx-config --libs std,richtext я получил: -L/usr/lib/i386-linux-gnu -pthread -lwx_gtk2u_richtext-3.0 -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0 но на Codeblocks он топ и не нашел библиотеку. - person Marin Sagovac; 13.07.2014
comment
Я не знаю, что происходит с CB (что вы подразумеваете под словом top?), но вам нужно убедиться, что он использует эту библиотеку. - person VZ.; 13.07.2014
comment
Я нашел проблему. Код выдает ошибки из конструктора, потому что у вас нет m_richTextCtrl, но разработчики не поддерживают wxWidgets 2.8 и выше. Я использую 3.0 и The code no longer works from 2.8.8 onwards. for wxRichTextCtrl. Сверху значит идет, уже настроен на C::B - person Marin Sagovac; 13.07.2014
comment
Это не имеет никакого смысла. У вас проблема с линковкой, какое это имеет отношение к выкидыванию чего-либо из ctor? Вероятно, вам нужно открыть еще один вопрос. - person VZ.; 13.07.2014

В Ubuntu 16.04 и блоке кода Настройка идентификатора -> Компилятор -> Настройка компоновщика -> Добавить-> Обзор (/usr/lib/x86_64-linux-gnu/libwx_gtk2u_richtext-3.0.so)

это работа для меня.

person user2638848    schedule 10.10.2017