2010-03-08 94 views
2

代码编译时没有太多投诉,但最后一步失败,出现下面的错误。在e论坛上有关于它的一些discussion,但仍然没有答案。在Linux上编译/链接e文本编辑器时出错

/usr/bin/ld: Warning: size of symbol `_pcre_utt_names' changed from 657 in .objs.release/cx_pcre_tables.o to 740 in ../external/out.release/lib/libpcre.a(pcre_tables.o) 
/usr/bin/ld: Warning: size of symbol `_pcre_utt' changed from 630 in .objs.release/cx_pcre_tables.o to 696 in ../external/out.release/lib/libpcre.a(pcre_tables.o) 
.objs.release/cx_pcre_exec.o: In function `match(doc_byte_iter, unsigned char const*, doc_byte_iter, int, match_data*, unsigned long, eptrblock*, int, unsigned int)': 
cx_pcre_exec.cpp:(.text+0x1c2a): undefined reference to `_pcre_ord2utf8(int, unsigned char*)' 
.objs.release/eauibook.o: In function `eAuiNotebook::LoadPerspective(wxString const&)': 
eauibook.cpp:(.text+0x9ad): undefined reference to `wxTabFrame::SetTabCtrlHeight(int)' 
.objs.release/PreviewDlg.o: In function `global constructors keyed to _ZN10PreviewDlg13sm_eventTableE': 
PreviewDlg.cpp:(.text+0x11b2): undefined reference to `wxEVT_WEB_TITLECHANGE' 
PreviewDlg.cpp:(.text+0x11ee): undefined reference to `wxEVT_WEB_DOMCONTENTLOADED' 
.objs.release/PreviewDlg.o: In function `PreviewDlg::RefreshBrowser(PreviewDlg::cxUpdateMode)': 
PreviewDlg.cpp:(.text+0x2a47): undefined reference to `wxWebControl::OpenURI(wxString const&, unsigned int, wxWebPostData*, bool)' 
.objs.release/PreviewDlg.o: In function `PreviewDlg::OnWebDocumentComplete(wxWebEvent&)': 
PreviewDlg.cpp:(.text+0x3259): undefined reference to `wxWebControl::GetCurrentURI() const' 
.objs.release/PreviewDlg.o: In function `PreviewDlg::PreviewDlg(EditorFrame&)': 
PreviewDlg.cpp:(.text+0x4984): undefined reference to `wxWebControl::IsInitialized()' 
PreviewDlg.cpp:(.text+0x49c5): undefined reference to `wxWebControl::wxWebControl(wxWindow*, int, wxPoint const&, wxSize const&)' 
PreviewDlg.cpp:(.text+0x562f): undefined reference to `wxWebControl::InitEngine(wxString const&)' 
.objs.release/PreviewDlg.o: In function `PreviewDlg::PreviewDlg(EditorFrame&)': 
PreviewDlg.cpp:(.text+0x68e4): undefined reference to `wxWebControl::IsInitialized()' 
PreviewDlg.cpp:(.text+0x6925): undefined reference to `wxWebControl::wxWebControl(wxWindow*, int, wxPoint const&, wxSize const&)' 
PreviewDlg.cpp:(.text+0x758f): undefined reference to `wxWebControl::InitEngine(wxString const&)' 
.objs.release/PreviewDlg.o: In function `PreviewDlg::OnButtonForward(wxCommandEvent&)': 
PreviewDlg.cpp:(.text+0x132): undefined reference to `wxWebControl::GoForward()' 
.objs.release/PreviewDlg.o: In function `PreviewDlg::OnButtonBack(wxCommandEvent&)': 
PreviewDlg.cpp:(.text+0x182): undefined reference to `wxWebControl::GoBack()' 
../ecore/libecore.so(cxInternal.o): In function `cxInternal::MoveOldSettings(eSettings&)': 
cxInternal.cpp:(.text+0x4d29): undefined reference to `eSettings::SetPageSettings(unsigned int, wxString const&, doc_id, int, int, wxString const&, std::vector<unsigned int, std::allocator<unsigned int> > const&, std::vector<cxBookmark, std::allocator<cxBookmark> > const&, eSettings::SubPage)' 
collect2: ld returned 1 exit status 

而且,这里是链接命令(对不起,我之前并没有包括它 - 我必须设置VERBOSE = 1来得到它):

g++ -Wl,-z,muldefs -o e .objs.release/AutoPairs.o .objs.release/Bookmarks.o .objs.release/BracketHighlight.o .objs.release/BundleItemEditorCtrl.o .objs.release/BundleManager.o .objs.release/BundleMenu.o .objs.release/BundlePane.o .objs.release/Cell.o .objs.release/ChangeCheckerThread.o .objs.release/CloseButton.o .objs.release/Colours.o .objs.release/CommitDlg.o .objs.release/CompareDlg.o .objs.release/CompletionPopup.o .objs.release/CurrentTabsPopup.o .objs.release/cx_pcre_chartables.o .objs.release/cx_pcre_exec.o .objs.release/cx_pcre_newline.o .objs.release/cx_pcre_tables.o .objs.release/cx_pcre_try_flipped.o .objs.release/cx_pcre_valid_utf8.o .objs.release/cx_pcre_xclass.o .objs.release/DetectTripleClicks.o .objs.release/DiffBar.o .objs.release/DiffDirPane.o .objs.release/DiffMarkBar.o .objs.release/DiffPanel.o .objs.release/DirWatcher.o .objs.release/Dispatcher.o .objs.release/DocHistory.o .objs.release/Document.o .objs.release/eAbout.o .objs.release/eApp.o .objs.release/EasyPlistWriter.o .objs.release/eauibook.o .objs.release/EditorBundlePanel.o .objs.release/EditorCtrl.o .objs.release/EditorFrame.o .objs.release/EditorPrintout.o .objs.release/eDockArt.o .objs.release/eDocumentPath.o .objs.release/eIpcServer.o .objs.release/Env.o .objs.release/EnvVarsPanel.o .objs.release/eSettings.o .objs.release/Execute.o .objs.release/FastDC.o .objs.release/FileActionThread.o .objs.release/FindCmdDlg.o .objs.release/FindInProjectDlg.o .objs.release/FixedLine.o .objs.release/Fold.o .objs.release/ftpparse.o .objs.release/GotoFileDlg.o .objs.release/GotoLineDlg.o .objs.release/GutterCtrl.o .objs.release/HtmlOutputPane.o .objs.release/jsonreader.o .objs.release/jsonval.o .objs.release/jsonwriter.o .objs.release/key_hook.o .objs.release/LineListNoWrap.o .objs.release/LineListWrap.o .objs.release/Lines.o .objs.release/matchers.o .objs.release/MultilineDataObject.o .objs.release/OpenDocDlg.o .objs.release/plistHandler.o .objs.release/PreviewDlg.o .objs.release/ProjectInfo.o .objs.release/ProjectInfoHandler.o .objs.release/ProjectPane.o .objs.release/ProjectSettings.o .objs.release/RedoDlg.o .objs.release/RemoteLoginDlg.o .objs.release/RemoteProfileDlg.o .objs.release/RemoteThread.o .objs.release/ReplaceStringParser.o .objs.release/RevTooltip.o .objs.release/RunCmdDlg.o .objs.release/SaveDlg.o .objs.release/SearchListBox.o .objs.release/SearchPanel.o .objs.release/SeparatorLine.o .objs.release/SettingsDlg.o .objs.release/ShareDlg.o .objs.release/ShellRunner.o .objs.release/ShortcutCtrl.o .objs.release/SnippetHandler.o .objs.release/StatusBar.o .objs.release/StringHistorySetting.o .objs.release/Strings.o .objs.release/styler_searchhl.o .objs.release/styler_syntax.o .objs.release/StyleRun.o .objs.release/styler_users.o .objs.release/SymbolList.o .objs.release/SyncThread.o .objs.release/TextTip.o .objs.release/ThemeEditor.o .objs.release/Timeline.o .objs.release/tmKey.o .objs.release/tm_syntaxhandler.o .objs.release/UndoHistory.o .objs.release/UpdaterThread.o .objs.release/urlencode.o .objs.release/Utf.o .objs.release/VersionTree.o .objs.release/WebKitHtmlWnd.o .objs.release/wxListCtrlEx.o -L../external/out.release/lib -L../ecore -lecore -lcurl -ltomcrypt -ltommath -lmk4 -lpcre -ltinyxml -lwxwebkit -lwebcore-wx -ljscore -L/home/ty/Desktop/etexteditor-e-811bf09/external/out.release/lib -pthread /home/ty/Desktop/etexteditor-e-811bf09/external/out.release/lib/libwx_gtk2u-2.8.a -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXinerama -lSM -lpng -lz -ljpeg -lwxregexu-2.8 -lz -ldl -lm /home/ty/Desktop/etexteditor-e-811bf09/external/out.release/lib/libwx_gtk2u-2.8.a -lsqlite3 -lxslt -lxml2 -lm -L/usr/lib -licui18n -licuuc -licudata -lm 

编辑:忘了链接http://github.com/etexteditor/e

编辑2:-Wl,-z,muldefs摆脱了一些错误 - Thx FX!

+0

http://github.com/etexteditor/e/blob/master/linux-notes.txt哪部分不起作用? – 2010-03-17 23:33:16

+0

您能否确认您的提示修订与github相匹配? – 2010-03-18 11:39:16

+0

@Nick Presta:我跟着那里的步骤,但连接阶段失败。一切似乎建立,但链接死:http://jckdnk111.pastebin.com/r3FBzwAN – jckdnk111 2010-03-18 15:25:12

回答

0

终于得到它来编译:http://www.e-texteditor.com/forum/viewtopic.php?p=14953#14953

感谢ajpalkovic!

的关键是使用ajpalkovic的叉:http://github.com/ajpalkovic/e/archives/linux

这是没有完全准备好黄金时间,但是这是一个巨大的进步。

+0

顺便说一句:如果任何人都可以提供关于如何让主人(http://github.com/etexteditor/e/archives/master)编译的步骤,我仍然会奖赏赏金。 – jckdnk111 2010-03-18 22:24:18

1

PCRE库在链接命令行中包含两次(您没有向我们展示;我的魔球有多棒?!)。一旦进入../external/out.release/lib/libpcre.a,第二次作为.objs.release/cx_pcre_tables.o中的单个对象。因此,你有这些“多重定义”的错误。尝试删除-lpcre或删除对象文件。

或者,甚至更简单,让链接器通过给它-z muldefs选项(如果将它传递给gcc)来忽略这些选项()。

+2

我举起多少个手指? – 2010-03-11 09:20:59

+2

没有,你在打字! – 2010-03-11 09:35:47

+0

所以'-Wl,-z,muldefs'帮了忙,但我仍然有一些错误。 Thx为您提供帮助! – jckdnk111 2010-03-12 22:32:55