2011-12-07 18 views
0

wxgtkを使用してプログラムをリンクする際に未定義参照が取得されています。私はunicodeマクロと--no-as-neededを定義するような他の場所からの提案を試みましたが、どちらも問題を修正していませんでした。wxstring未定義参照

undefined reference to `wxStringBase::InitWith(wchar_t const*, unsigned int, unsigned int)' 
undefined reference to `wxString::mb_str(wxMBConv const&) const' 
undefined reference to `operator+(wchar_t const*, wxString const&)' 

これはリンクに使用されるラインである:これらは、リンカからエラーの例です

/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ -o Aria -pthread -Wl, 
    -rpath,/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib -Wl, 
    --rpath,/mnt/utmp/aria/lib/ rtmidi/RtMidi.o irrXML/irrXML.o 
    ibjdkmidi/src/jdkmidi_smpte.o libjdkmidi/src/jdkmidi_edittrack.o 
    libjdkmidi/src/jdkmidi_process.o libjdkmidi/src/jdkmidi_fileshow.o 
    libjdkmidi/src/jdkmidi_showcontrolhandler.o libjdkmidi/src/jdkmidi_matrix.o 
    libjdkmidi/src/jdkmidi_midi.o libjdkmidi/src/jdkmidi_file.o 
    libjdkmidi/src/jdkmidi_advancedsequencer.o libjdkmidi/src/jdkmidi_filewrite.o 
    libjdkmidi/src/jdkmidi_showcontrol.o libjdkmidi/src/jdkmidi_filereadmultitrack.o 
    libjdkmidi/src/jdkmidi_sequencer.o libjdkmidi/src/jdkmidi_multitrack.o 
    libjdkmidi/src/jdkmidi_tick.o libjdkmidi/src/jdkmidi_queue.o 
    libjdkmidi/src/jdkmidi_manager.o libjdkmidi/src/jdkmidi_filewritemultitrack.o 
    libjdkmidi/src/jdkmidi_track.o libjdkmidi/src/jdkmidi_msg.o 
    libjdkmidi/src/jdkmidi_tempo.o libjdkmidi/src/jdkmidi_fileread.o 
    libjdkmidi/src/jdkmidi_driverdump.o libjdkmidi/src/jdkmidi_keysig.o  
    libjdkmidi/src/jdkmidi_parser.o libjdkmidi/src/jdkmidi_driver.o libjdkmidi/src/jdkmidi_sysex.o libjdkmidi/src/win32/jdkmidi_driverwin32.o Src/LeakCheck.o Src/PresetManager.o Src/UnitTest.o Src/PreferencesData.o Src/UnitTestUtils.o Src/AriaCore.o Src/Clipboard.o Src/languages.o Src/main.o Src/Singleton.o Src/Editors/ScoreEditor.o Src/Editors/RelativeXCoord.o Src/Editors/ControllerEditor.o Src/Editors/KeyboardEditor.o Src/Editors/DrumEditor.o Src/Editors/GuitarEditor.o Src/Editors/Editor.o Src/Dialogs/AboutDialog.o Src/Dialogs/TrackPropertiesDialog.o Src/Dialogs/TuningDialog.o Src/Dialogs/PresetEditor.o Src/Dialogs/Preferences.o Src/Dialogs/CustomKeyDialog.o Src/Dialogs/CopyrightWindow.o Src/Dialogs/CustomNoteSelectDialog.o Src/Dialogs/WaitWindow.o Src/Dialogs/ScaleDialog.o Src/Dialogs/PrintSetupDialog.o Src/Midi/InstrumentChoice.o Src/Midi/GuitarTuning.o Src/Midi/ControllerEvent.o Src/Midi/KeyPresets.o Src/Midi/MeasureData.o Src/Midi/DrumChoice.o Src/Midi/Track.o Src/Midi/MagneticGrid.o Src/Midi/Sequence.o Src/Midi/CommonMidiUtils.o Src/Midi/Note.o Src/Midi/TimeSigChange.o Src/Midi/Players/PlatformMidiManager.o Src/Midi/Players/NullDevice.o Src/Midi/Players/Sequencer.o Src/Midi/Players/Alsa/AlsaPlayer.o Src/Midi/Players/Alsa/AlsaPort.o Src/Midi/Players/Alsa/AlsaNotePlayer.o Src/Midi/Players/Mac/OutputBase.o Src/Midi/Players/Mac/MacPlayerInterface.o Src/Midi/Players/Mac/CoreMIDIOutput.o Src/Midi/Players/Mac/AudioUnitOutput.o Src/Midi/Players/Example/ExamplePlayer.o Src/Midi/Players/Jack/JackMidiManager.o Src/Midi/Players/Win/WinPlayer.o Src/IO/MidiFileReader.o Src/IO/IOUtils.o Src/IO/AriaFileWriter.o Src/IO/MidiToMemoryStream.o Src/Analysers/SilenceAnalyser.o Src/Analysers/ScoreAnalyser.o Src/Actions/DeleteTrack.o Src/Actions/SnapNotesToGrid.o Src/Actions/ScaleSong.o Src/Actions/Duplicate.o Src/Actions/RearrangeNotes.o Src/Actions/ShiftBySemiTone.o Src/Actions/InsertEmptyMeasures.o Src/Actions/RemoveOverlapping.o Src/Actions/Record.o Src/Actions/Paste.o Src/Actions/EditAction.o Src/Actions/ResizeNotes.o Src/Actions/MoveNotes.o Src/Actions/AddControllerSlide.o Src/Actions/SetAccidentalSign.o Src/Actions/AddTrack.o Src/Actions/UpdateGuitarTuning.o Src/Actions/AddNote.o Src/Actions/ScaleTrack.o Src/Actions/RemoveMeasures.o Src/Actions/DeleteSelected.o Src/Actions/SetNoteVolume.o Src/Actions/ShiftFrets.o Src/Actions/ShiftString.o Src/Actions/NumberPressed.o Src/Actions/AddControlEvent.o Src/Pickers/MagneticGridPicker.o Src/Pickers/VolumeSlider.o Src/Pickers/KeyPicker.o Src/Pickers/TuningPicker.o Src/Pickers/ControllerChoice.o Src/Pickers/TimeSigPicker.o Src/Pickers/InstrumentPicker.o Src/Pickers/NotePickerWidget.o Src/Pickers/DrumPicker.o Src/Renderers/wxImage.o Src/Renderers/AbstractDrawable.o Src/Renderers/wxDrawable.o Src/Renderers/wxRenderPane.o Src/Renderers/GLImage.o Src/Renderers/GLwxString.o Src/Renderers/GLDrawable.o Src/Renderers/GLRenderImp.o Src/Renderers/GLPane.o Src/Renderers/wxRenderImp.o Src/Renderers/wxDCString.o Src/Printing/wxEasyPrintWrapper.o Src/Printing/KeyrollPrintableSequence.o Src/Printing/AbstractPrintableSequence.o Src/Printing/AriaPrintable.o Src/Printing/RenderRoutines.o Src/Printing/SymbolPrinter/TabPrint.o Src/Printing/SymbolPrinter/ScorePrint.o Src/Printing/SymbolPrinter/EditorPrintable.o Src/Printing/SymbolPrinter/SymbolPrintableSequence.o Src/Printing/SymbolPrinter/PrintLayout/LayoutElement.o Src/Printing/SymbolPrinter/PrintLayout/RelativePlacementManager.o Src/Printing/SymbolPrinter/PrintLayout/PrintLayoutAbstract.o Src/Printing/SymbolPrinter/PrintLayout/PrintLayoutLine.o Src/Printing/SymbolPrinter/PrintLayout/PrintLayoutNumeric.o Src/Printing/SymbolPrinter/PrintLayout/PrintLayoutMeasure.o Src/GUI/MainPane.o Src/GUI/ImageProvider.o Src/GUI/GraphicalSequence.o Src/GUI/MainFrame.o Src/GUI/MainFrameMenuBar.o Src/GUI/MeasureBar.o Src/GUI/GraphicalTrack.o 
-L/mnt/utmp/aria/lib -L/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib 
-Lmnt/utmp/aria/lib -Lmnt/utmp/aria/lib -L/opt/gnome/lib 
-lwx_gtk2u_core-2.8-arm-angstrom-linux-gnueabi 
-lwx_baseu-2.8-arm-angstrom-linux-gnueabi -lasound -ldl -lm -lglib-2.0 

が結果を変更していないリンクのparamsを再配置し、それが使用される二つのWX LIBSですリンカーで2つ使用する必要があります。

答えて

0

wxStringはライブラリwxBaseにあります。

あなたは、私がwxBaseライブラリであると仮定し

-lwx_baseu-2.8-arm-angstrom-linux-gnueabi 

にリンクされています。

サンプルプログラムをリンクできますか? (Answer:yes)したがって、失敗したリンクコマンドとの比較のために、サンプルの1つを作成するために使用しているリンクコマンドを送信してください。

「サンプル」リンクコマンドラインを見て、サンプルがライブラリの非ユニコードバージョンでコンパイルされているのに気付きましたが、失敗したリンクはユニコードバージョンを使用しています。私はユニコードを使用してサンプルを構築しようとすることをお勧めします。テストプログラムを使用しないと、結果は参考になります。

-lwx_base_xml-2.8-arm-angstrom-linux-gnueabi 
-lexpat -lwx_gtk2_adv-2.8-arm-angstrom-linux-gnueabi 
-lwx_gtk2_html-2.8-arm-angstrom-linux-gnueabi 
-lwx_gtk2_core-2.8-arm-angstrom-linux-gnueabi 
-lwx_base-2.8-arm-angstrom-linux-gnueabi 

サンプルは-lwx_base_xml-2.8-アームオングストローム-linuxの-gnueabiを使用していますが、-lwx_baseu-2.8-アームオングストローム-linuxの-gnueabiを使用し、あなたはそれを変更しようとしたことがありますか?

+0

サンプルプログラムをリンクするとうまくいくようです。ウィジェットが実行されたときのウィジェットの例からのリンク線です。 http://pastebin.com/Ucn6YQE4 – eyecreate

+0

ユニコードを使用するようにリンクを変更すると、正常に完了します。 http://pastebin.com/MnPeBeSd 興味深いことに、wxgtkをコンパイルするときに、私はユニコードを作るように指定します。非ユニコードがどこから来ているのかわからない。 – eyecreate

+0

base_xmlはbaseとは異なるlibです。コンパイルしたライブラリのリストは次のとおりです。 http://pastebin.com/gS9eiFs3 – eyecreate