Donnerstag, 9. Februar 2012, 03:46

Du bist nicht angemeldet.



errorX

hat hier 2. Wohnsitz.

  • »errorX« ist der Autor dieses Themas

Beiträge: 134

Ubuntu: 9.10

Kernel: 2.6.28

Desktop: KDE

Architektur: 64-bit

  • Private Nachricht senden

1

Donnerstag, 8. Januar 2009, 14:35

wxWidgets-C++-Code manuell kompilieren und linken

Hi,

ich bin gerade dabei, mich in wxWidgets einzuarbeiten. Wenn ich eine Anwendung kompiliere, geht das recht einfach per

Quellcode

1
$ g++ file.cpp file2.cpp `wx-config --libs --cxxflags` -o file

(entspricht: )

Quellcode

1
2
3
4
g++ file.cpp file2.cpp -I/usr/local/lib/wx/include/gtk2-ansi-release-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64
 -D_LARGE_FILES -D__WXGTK__ -pthread -L/usr/local/lib -pthread -lwx_gtk2_richtext-2.8 -lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8
 -lwx_gtk2_qa-2.8 -lwx_gtk2_html-2.8 -lwx_gtk2_adv-2.8 -lwx_gtk2_core-2.8 -lwx_base_xml-2.8 -lwx_base_net-2.8 -lwx_base-2.8
 -o file

Jetzt will ich aber, dass der gcc mir nicht automatisch die Eingabedateien linkt, sondern erstmal die Object-Files ausspuckt, was ja bekanntlich mit dem -c Parameter funktioniert. Dann linkt er aber - logischerweise - nicht die libs hinzu. Wie kann ich das anstellen, dass er erst die .o-Dateien generiert und dann das ganze linkt?

Wenn ich versuche, die `wx-config --libs` dem ld als Parameter zu übergeben, kennt er -pthread nicht, das lässt sich aber vermeiden, indem ich -lpthread schreibe. Daraufhin erscheint folgende Fehlermeldung:

Quellcode

1
2
3
4
ld: warning: cannot find entry symbol _start; defaulting to 0000000000409ae8
test.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0xa3): undefined reference to `__dso_handle'
test.cpp:(.text+0xe6): undefined reference to `__dso_handle'


MfG errorX

//edit: Gelöst. Ich brauche ld natürlich gar nicht verwenden, über den g++ linkgen geht auch und dann funktionieren die Parameter einwandfrei. Also praktisch so:

Quellcode

1
2
3
$ g++ file.cpp -c `wx-config --cxxflags` -o file.o
$ g++ file2.cpp -c `wx-config --cxxflags` -o file2.o
$ g++ file.o file2.o `wx-config --libs` -o file

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »errorX« (8. Januar 2009, 14:35)