【问题标题】:Issues when compiling CodeBlocks 13.12编译 CodeBlocks 13.12 时的问题
【发布时间】:2014-09-05 17:39:56
【问题描述】:

我想在我的笔记本电脑上安装 C::B(在 fedora 20 下运行)。但似乎 C::B 13.12 不存在于 Fedora 的存款中。所以我已经下载了源代码以便编译它。

这就是我所做的:

1_ ./配置

它似乎运作良好。

*************************************************
* Code::Blocks source tree has been configured. *
*************************************************

You can now build Code::Blocks by issuing 'make'.
When the build is complete, become root and install
it by issuing 'make install'.

2_

make

它不起作用:

./src/propgrid.cpp:2391:60: error: no 'bool wxPGProperty::IsChildSelected(bool) const' member function declared in class 'wxPGProperty'
bool wxPGProperty::IsChildSelected( const bool recursive ) const
                                                            ^
./src/propgrid.cpp: In member function 'virtual void wxPropertyGrid::RefreshProperty(wxPGProperty*)':
./src/propgrid.cpp:6065:50: error: 'class wxPGProperty' has no member named 'IsChildSelected'
     if ( m_pState->DoIsPropertySelected(p) || p->IsChildSelected(true) )
                                                  ^
./src/propgrid.cpp: At global scope:
./src/propgrid.cpp:11850:96: error: no 'int wxPropertyGridState::GetColumnFullWidth(wxClientDC&, wxPGProperty*, unsigned int)' member function declared in class 'wxPropertyGridState'
int wxPropertyGridState::GetColumnFullWidth( wxClientDC &dc, wxPGProperty *p, unsigned int col )
                                                                                                ^
make[3]: *** [propgrid.lo] Erreur 1
make[3] : on quitte le répertoire « /home/bog/Téléchargements/codeblocks-13.12/src/sdk/wxpropgrid »
make[2]: *** [all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/bog/Téléchargements/codeblocks-13.12/src/sdk »
make[1]: *** [all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/bog/Téléchargements/codeblocks-13.12/src »
make: *** [all-recursive] Erreur 1

怎么了? (我已经安装了 wxWidgets。)

---------编辑----------

编译wxWidgets已经解决了编译错误,但是我在make C::B 13.12的时候得到了别人。

这是错误:

wxscintilla.cpp:(.text+0x1a5): 未定义的引用 wxStopWatch::Time() const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::OnMouseLeftUp(wxMouseEvent&)': wxscintilla.cpp:(.text+0x292): 未定义的引用 wxStopWatch::Time() const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::OnPaint(wxPaintEvent&)': wxscintilla.cpp:(.text+0x684): 对wxWindowDC::wxWindowDC()' wxscintilla.cpp:(.text+0x6c0): undefined reference to wxMemoryDC::Init()' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 SetEventText(wxScintillaEvent&, char const*, unsigned int)': wxscintilla.cpp:(.text+0xbbe): undefined reference to wxStringBase::operator=(wxStringBase const&)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 wxColourFromSpec(wxString const&)': wxscintilla.cpp:(.text+0xc4f): undefined reference towxColour::FromString(wchar_t const*)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 wxScintilla::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)': wxscintilla.cpp:(.text+0x2979): undefined reference towxStringBase::npos' wxscintilla.cpp:(.text+0x299d): 未定义对wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla.cpp:(.text+0x29c1): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla.cpp:(.text+0x2aba): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0x2ae2): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla.cpp:(.text+0x2b0c): 未定义的引用 wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::StyleGetFaceName(int)': wxscintilla.cpp:(.text+0x3719): 对wxStringBase::npos' wxscintilla.cpp:(.text+0x372e): undefined reference to wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 wxScintilla::GetWordChars() const': wxscintilla.cpp:(.text+0x401a): undefined reference towxStringBase::npos' wxscintilla.cpp:(.text+0x402f): 未定义的引用 wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::GetSelectedText()': wxscintilla.cpp:(.text+0x5a4a): 对wxStringBase::npos' wxscintilla.cpp:(.text+0x5a5f): undefined reference to wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 wxScintilla::GetTextRange(int, int)': wxscintilla.cpp:(.text+0x5c27): undefined reference towxStringBase::npos' wxscintilla.cpp:(.text+0x5c3c): 未定义的引用 wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::DoLoadFile(wxString const&, int)': wxscintilla.cpp:(.text+0x6332): 未定义的引用 wxFFile::wxFFile(wchar_t const*, wchar_t const*)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::DoSaveFile(wxString const&, int)': wxscintilla.cpp:(.text+0x65de): 未定义的引用 wxFFile::wxFFile(wchar_t const*, wchar_t const*)' wxscintilla.cpp:(.text+0x661f): undefined reference to wxString::mb_str(wxMBConv const&) const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 wxScintilla::GetTag(int) const': wxscintilla.cpp:(.text+0x7e29): undefined reference towxStringBase::npos' wxscintilla.cpp:(.text+0x7e3e): 未定义的引用 wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::GetLine(int) const': wxscintilla.cpp:(.text+0x9099): 对wxStringBase::npos' wxscintilla.cpp:(.text+0x90ae): undefined reference to wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 wxScintilla::GetWhitespaceChars() const': wxscintilla.cpp:(.text+0xaa3a): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xaa4f): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::GetPunctuationChars() const': wxscintilla.cpp:(.text+0xac6a): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xac7f): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::AutoCompGetCurrentText() const': wxscintilla.cpp:(.text+0xb01a): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xb02f): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::MarginGetText(int) const': wxscintilla.cpp:(.text+0xbbf9): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xbc0e): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::MarginGetStyles(int) const': wxscintilla.cpp:(.text+0xbe89): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xbe9e): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::AnnotationGetText(int) const': wxscintilla.cpp:(.text+0xc1d9): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xc1ee): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::AnnotationGetStyles(int) const': wxscintilla.cpp:(.text+0xc469): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xc47e): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::GetRepresentation(wxString const&) const': wxscintilla.cpp:(.text+0xdc3a): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xdc4f): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::GetProperty(wxString const&)': wxscintilla.cpp:(.text+0xe21c): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xe231​​): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::GetPropertyExpanded(wxString const&)': wxscintilla.cpp:(.text+0xe43c): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xe451): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::PropertyNames() const': wxscintilla.cpp:(.text+0xe73a): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xe74f): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::DescribeProperty(wxString const&) const': wxscintilla.cpp:(.text+0xe98c): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xe9a1): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::DescribeKeyWordSets() const': wxscintilla.cpp:(.text+0xeb8a): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xeb9f): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::GetSubStyleBases() const': wxscintilla.cpp:(.text+0xefaa): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xefbf): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::GetLexerLanguage() const': wxscintilla.cpp:(.text+0xf2da): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xf2ef): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::GetCurLine(int*)': wxscintilla.cpp:(.text+0xf501): 未定义的引用 wxStringBase::npos' wxscintilla.cpp:(.text+0xf516): undefined reference towxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): 在 函数wxScintilla::StyleSetSpec(int, wxString const&)': wxscintilla.cpp:(.text+0xf67e): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xf69e): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla.cpp:(.text+0xf723): undefined reference to wxString::BeforeFirst(wchar_t) const' wxscintilla.cpp:(.text+0xf740): 对wxString::AfterFirst(wchar_t) const' wxscintilla.cpp:(.text+0xf752): undefined reference to wxString::Cmp(wchar_t const*) const' wxscintilla.cpp:(.text+0xf866) 的未定义引用: 对wxString::Cmp(wchar_t const*) const' wxscintilla.cpp:(.text+0xf89e): undefined reference to wxString::Cmp(wchar_t const*) const' wxscintilla.cpp:(.text+0xf8d6) 的未定义引用: 对wxString::Cmp(wchar_t const*) const' wxscintilla.cpp:(.text+0xf90e): undefined reference to wxString::Cmp(wchar_t const*) const' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):wxscintilla.cpp:(.text+0xf966): 更多未定义的引用 wxString::Cmp(wchar_t const*) const' follow wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::StyleGetFont(int)': wxscintilla.cpp:(.text+0xfb7a): 未定义对wxFont::SetWeight(int)' wxscintilla.cpp:(.text+0xfba0): undefined reference to wxFont::SetStyle(int)' wxscintilla.cpp:(.text+0xfbbc) 的引用:未定义 参考wxFont::SetWeight(int)' wxscintilla.cpp:(.text+0xfbd4): undefined reference towxFont::SetStyle(int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):在函数中 wxScintilla::StyleSetFont(int, wxFont&)': wxscintilla.cpp:(.text+0xfe61): undefined reference to wxStringBase::npos' wxscintilla.cpp:(.text+0xfe8a): 未定义 参考wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In functionwxScintilla::MarkerDefineBitmap(int, wxBitmap const&)': wxscintilla.cpp:(.text+0x1135d): 未定义的引用 wxImage::SaveFile(wxOutputStream&, int) const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function wxScintilla::RegisterImage(int, wxBitmap const&)': wxscintilla.cpp:(.text+0x1149d): 未定义的引用 wxImage::SaveFile(wxOutputStream&, int) const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o): In function _GLOBAL__sub_I_wxscintilla.cpp': wxscintilla.cpp:(.text.startup+0x9e9): 未定义的引用 wxEVT_COMMAND_MENU_SELECTED' wxscintilla.cpp:(.text.startup+0xa3d): undefined reference towxEVT_COMMAND_LISTBOX_DOUBLECLICKED' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV16wxScintillaEvent[_ZTV16wxScintillaEvent]+0x18): 对wxObject::CloneRefData(wxObjectRefData const*) const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x18): undefined reference towxObject::CloneRefData(wxObjectRefData const*) 的未定义引用 常量' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x24): 对wxWindowBase::TryValidator(wxEvent&)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x28): undefined reference towxWindowBase::TryParent(wxEvent&)' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x44): 对wxWindow::Destroy()' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x48): undefined reference towxControl::SetLabel(wxString const&)' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x4c): 对wxControl::GetLabel() const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0xa8): undefined reference towxWindow::Enable(bool)' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0xb8): 对wxWindow::SetWindowStyleFlag(long)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0xdc): undefined reference towxWindow::AcceptsFocus() const' 的未定义引用 wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0xe4): 未定义对wxWindowBase::Navigate(int)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x16c): undefined reference towxWindow::GetTextExtent(wxString const&, int*, int*, int*, int*, wxFont const*) const' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x1d8): 未定义对wxControl::OnInternalIdle()' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x1f0): undefined reference towxWindow::DoMoveInTabOrder(wxWindow*, wxWindowBase::MoveKind)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x264): 未定义对wxWindow::ApplyToolTip(_GtkTooltips*, wchar_t const*)' wxscintilla/.libs/libwxscintilla.a(wxscintilla.o):(.data.rel.ro._ZTV11wxScintilla[_ZTV11wxScintilla]+0x274): undefined reference towxWindow::ApplyWidgetStyle(bool)' collect2 的引用: 错误:ld 返回 1 退出状态 make[3]: * [libcodeblocks.la] Erreur 1 make[3] : onquitte le répertoire « /home/bog/Téléchargements/codeblocks-13.12/trunk/src/sdk » make[2]: [all-recursive] Erreur 1 make[2] : on quitte le répertoire « /home/bog/Téléchargements/codeblocks-13.12/trunk/src/sdk » make[1]: [all-recursive] Erreur 1 make[1] : onquitte le répertoire « /home/bog/Téléchargements/codeblocks-13.12/trunk/src » make: * [全递归] Erreur 1

我认为是因为我没有安装静态库:

[bog@Asus trunk]$ ./configure | grep wxWidgets
/home/bog/Téléchargements/codeblocks-13.12/missing: Unknown `--is-lightweight' option
Try `/home/bog/Téléchargements/codeblocks-13.12/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
checking for wxWidgets version >= 2.8.12... yes (version 3.0.1)

checking for wxWidgets static library... no <--- HERE

checking for wxWidgets platform... wxGTK
checking for wxWidgets >= 2.9.0... yes (version 3.0.1)
configure: (Re)setting libs for wxWidgets 3.0.1
[bog@Asus trunk]$ 

如何安装?

【问题讨论】:

  • (我已经安装了wxWidgets)哪个版本?
  • wxGtk3-3.0.1-1 和 wxGTK-2.8.12,应该够了吧?

标签: linux compilation makefile wxwidgets codeblocks


【解决方案1】:

wxGTK 3.0.x 确实有 wxPGProperty::IsChildSelected(),所以看起来你配置 C::B 使用了错误的 wxWidgets 版本。我的建议是安装您拥有的任何旧版本(虽然您可以并行安装多个 wxWidgets 版本,但这可能会导致一些混乱,所以如果您真的不需要它们,为什么要这样做)并重新配置然后再次运行 make .

【讨论】:

  • 我应该如何配置它以使用 wxGTK3x ?
  • 我不知道 C::B 配置,但如果 wxGTK3 是唯一安装的版本,它会被自动选择。如果您绝对需要保留 2.8,请查看 C::B 配置帮助输出,答案可能就在那里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 2015-04-19
  • 2016-02-09
  • 2014-07-29
相关资源
最近更新 更多