Ich versuche, ein Programm zu machen, das mit MS Excel unter Verwendung libxlsxwriter interagiert. Ich verwende MSYS2 mit Mingw-w64, um meine Anwendung zu erstellen. Immer wenn ich versuche, meinen Code mit der 64-Bit-Version von gcc zu kompilieren, funktioniert alles einwandfrei; Wenn ich jedoch versuche, mit der 32-Bit-Version von GCC zu kompilieren, gibt es mir diese Art von Fehler für jede Funktion, die ich verwende: C:\msys64\tmp\ccknaH4k.o:main.cpp:(.text+0x16): undefined reference to 'workbook_new'
. Was könnte es sein?undefined Verweis auf [...] beim Erstellen von Programmen mit libxlsxwriter
2
A
Antwort
1
Die Bibliothek erscheint für 64-Bit nur gebaut worden, so dass, wenn Sie versuchen, ein 32-Bit-Binär mit ihm zu verbinden, der Linker nur in der Lage ist 64-Bit-Symbole, nicht 32-Bit zu finden Einsen.
Um dies zu lösen, müssen Sie eine 32-Bit-Version der Bibliothek kompilieren oder herunterladen.
Verwandte Themen
- 1. undefined Verweis auf 'd1mach_'
- 2. undefined Verweis auf `geschrieben '
- 3. undefined Verweis auf __isoc99_sscanf
- 4. undefined Verweis auf Vorlagenfunktion
- 5. undefined Verweis auf `readline '
- 6. undefined Verweis auf `Forkpty '
- 7. undefined Verweis auf `gnuplot_init() '
- 8. undefined Verweis auf ‚setlinebuf‘
- 9. undefined Verweis auf ‚xcb_event_get_label‘
- 10. undefined Verweis auf `Pthread_mutex_trylock '
- 11. undefined Verweis auf `gtk_label_set_xalign`
- 12. Undefinierter Verweis auf boost :: thread-Funktionen beim Erstellen von Caffe
- 13. Undefined Verweis auf 'FCGX'
- 14. undefined Verweis auf `__imp_WSACleanup '
- 15. undefined Verweis auf 'mpg123_open'
- 16. undefined Verweis auf "aufblasen"
- 17. undefined Verweis auf 'nCr'
- 18. undefined Verweis auf 'funtion_name'
- 19. „undefined Verweis auf“ Linker-Fehler beim Arbeiten mit Vorlagen
- 20. C++ undefined Verweis auf vtable
- 21. undefined Verweis auf `SavingsAccount :: annualInterestRate '
- 22. undefined Verweis auf Funktion CMake
- 23. undefined Verweis auf Mongo :: curTimeMillis64()
- 24. ArduinoJSON undefined Verweis auf `__cxa_guard_acquire '
- 25. gcc undefined Verweis auf dbus_ *
- 26. undefined Verweis auf `JNI_CreateJavaVM 'Linux
- 27. undefined Verweis auf '_asan_init_v4', wenn
- 28. Clion undefined Verweis auf Funktion
- 29. undefined Verweis auf `JNI_CreateJavaVM 'Windows
- 30. Fehler undefined Verweis auf ‚_setargv‘
Die Bibliothek ist sowohl für 32-Bit- als auch für 64-Bit-Systeme geeignet. Sie müssen die Bibliothek erstellen, um sie zu verwenden. Ich benutzte die MINGW32-Shell und kompilierte sie erneut mit 'make' und' make install', aber mit den gleichen Ergebnissen. Eine andere seltsame Sache ist, dass die kompilierten Bibliotheken standardmäßig in 'C: \ msys64 \ usr \ lib' stehen und wenn ich den 32-Bit gcc benutzen will, muss ich die Bibliotheken in' C: \ msys64 \ mingw32 \ kopieren. lib' (dies passiert nicht mit der MINGW64-Shell). – sgrontflix
@sgrontflix, haben Sie die Binärdatei mit der korrekten 32-Bit-Bibliotheksdatei verknüpft, wenn Sie für 32-Bit erstellen? – ForceBru
Ich bin mir nicht sicher, ich verwende diesen Befehl ---> 'gcc myexcel.c -o myexcel -lxlsxwriter -lz' zum Kompilieren und Verknüpfen von Bibliotheken mit meiner ausführbaren Datei. Wie kann ich sicherstellen, dass ich tatsächlich eine 32-Bit-Bibliothek verknüpfe? Es tut mir leid, wenn ich dumm aussehe, aber ich bin neu in diesen Dingen. – sgrontflix