web-dev-qa-db-de.com

"Fehler LNK2001: nicht aufgelöstes externes Symbol"

Ich habe ein Problem mit meinem Programm in VC++ 2008. Wenn ich es kompiliere, werden die folgenden Fehler aufgelistet. Ich habe viel Zeit auf groups.google.com verbracht, um den Grund zu finden, aber kein Kommentar hat mir geholfen. Weiß jemand was das Problem ist? Vielen Dank.

error LNK2001: unresolved external symbol "long rfl_xref_id" ([email protected]@3JA)
error LNK2001: unresolved external symbol "struct obj_name * pat_objname_list" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "struct obj_name * pat_recall_objname_list" (?pat_recall_objnam[email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "wchar_t * rfl_unresolved_xref_tag" ([email protected]@3PA_WA)
error LNK2001: unresolved external symbol "struct ref_pages * rfl_pages" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "short rfl_use_regen_id" ([email protected]@3FA)
error LNK2001: unresolved external symbol "long rfl_regen_id" ([email protected]@3JA)
error LNK2001: unresolved external symbol "unsigned short rfl_list_status" ([email protected]@3GA)
error LNK2001: unresolved external symbol "unsigned short rfl_inst_hdr_page" ([email protected]@3GA)
error LNK2001: unresolved external symbol "unsigned short rfl_inst_hdr_ptr" ([email protected]@3GA)
error LNK2001: unresolved external symbol "unsigned short rfl_inst_obj" ([email protected]@3GA)
error LNK2001: unresolved external symbol "short rfl_instance_level" ([email protected]@3FA)
error LNK2001: unresolved external symbol "short rfl_access_mode" ([email protected]@3FA)
error LNK2001: unresolved external symbol "long rfl_select_ref_offset" ([email protected]@3JA)
error LNK2001: unresolved external symbol "long rfl_edit_ref_id" ([email protected]@3JA)
error LNK2001: unresolved external symbol "long rfl_add_att_offset" ([email protected]@3JA)
error LNK2001: unresolved external symbol "short rfl_adding_ent_data" ([email protected]@3FA)
error LNK2001: unresolved external symbol "long rfl_xref_def_inst_ukey" ([email protected]@3JA)
error LNK2001: unresolved external symbol "long rfl_xref_def_ukey" ([email protected]@3JA)
error LNK2001: unresolved external symbol "long rfl_instance_ukey" ([email protected]@3JA)
error LNK2001: unresolved external symbol "long rfl_ref_id" ([email protected]@3JA)
error LNK2001: unresolved external symbol "unsigned short rfl_next_page_num" ([email protected]@3GA)
error LNK2001: unresolved external symbol "unsigned short rfl_num_pages" ([email protected]@3GA)
error LNK2001: unresolved external symbol "unsigned short rfl_page_size" ([email protected]@3GA)
error LNK2001: unresolved external symbol "struct ref_pages * rfl_cur_page" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "struct ref_def_map * rfl_recall_map" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "struct ref_xref_image * rfl_image_list" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "struct ref_xref_refresh * rfl_refresh_info" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "short * rfl_form_status" ([email protected]@3PAFA)
error LNK2001: unresolved external symbol "short rfl_num_forms" ([email protected]@3FA)
error LNK2001: unresolved external symbol "long rfl_recall_start_id" ([email protected]@3JA)
error LNK2001: unresolved external symbol "long rfl_recall_end_id" ([email protected]@3JA)
error LNK2001: unresolved external symbol "struct ref_pages rfl_begin_add_page" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "long rfl_add_length" ([email protected]@3JA)
error LNK2001: unresolved external symbol "struct ref_pages rfl_found_page" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "short rfl_scan_status" ([email protected]@3FA)
error LNK2001: unresolved external symbol "struct ref_pages rfl_scan_info" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "struct ref_recall_xrefs * rfl_xref_list" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "struct ref_xref_image * rfl_recall_image_list" ([email protected]@[email protected]@A)
error LNK2001: unresolved external symbol "struct ref_xref_image * rfl_found_image" ([email protected]@[email protected]@A)

Ich habe die "intdef.h" -Datei eingefügt, die die Definition aller obigen externen Symbole enthält. Intdef.h enthält:

extern struct ref_pages *rfl_pages;
extern struct ref_pages *rfl_cur_page;
extern struct ref_pages rfl_begin_add_page;
extern struct ref_pages rfl_scan_info;
extern struct ref_pages rfl_found_page;
extern struct ref_def_map *rfl_recall_map;
extern struct ref_select_info *rfl_select;
extern struct ref_recall_xrefs *rfl_xref_list;
extern struct ref_xref_image *rfl_image_list;
extern struct ref_xref_image *rfl_found_image;
extern struct ref_xref_image *rfl_recall_image_list;
extern struct ref_xref_refresh *rfl_refresh_info;
extern unsigned short rfl_page_size;
extern unsigned short rfl_num_pages;
extern unsigned short rfl_next_page_num;
extern unsigned short rfl_inst_obj;
extern unsigned short rfl_inst_hdr_ptr;
extern unsigned short rfl_inst_hdr_page;
extern unsigned short rfl_list_status;
extern short rfl_adding_ent_data;
extern short rfl_scan_status;
extern short rfl_access_mode;
extern short rfl_instance_level;
extern short rfl_redraw_layer;
extern long rfl_add_length;
extern long rfl_ref_id;
extern long rfl_edit_ref_id;
extern long rfl_recall_start_id;
extern long rfl_recall_end_id;
extern long rfl_import_ref_id;
extern long rfl_import_xref_id;
extern long rfl_xref_id;
extern long rfl_instance_ukey;
extern long rfl_xref_def_ukey;
extern long rfl_xref_def_inst_ukey;
extern long rfl_add_att_offset;
extern long rfl_select_ref_offset;
extern long rfl_regen_id;
extern double *rfl_extents;
extern _TCHAR **rfl_ref_names;
extern short rfl_use_regen_id;
extern short rfl_ref_cntr;
extern short rfl_num_forms;
extern short *rfl_form_status;
extern _TCHAR *rfl_xref_fpath;
extern _TCHAR *rfl_xref_name;
extern _TCHAR *rfl_xref_ref_name;
extern _TCHAR *rfl_xref_ref_label;
extern _TCHAR *rfl_unresolved_xref_tag;
extern _TCHAR rfl_tran_is_iso;
extern _TCHAR rfl_doing_area;
extern int rfl_nv;
extern double *rfl_ar;
extern short rfl_regen_xref_mode;
5
Annie

Ich denke, das Problem liegt beim Schlüsselwort 'extern'. Dieses Schlüsselwort gibt an, dass diese Werte an einer anderen Stelle in Ihrem Code deklariert werden. Vielleicht fehlt Ihnen eine andere zu kompilierende .c/.cpp-Datei, die die Deklarationen dieser Variablen enthält. Wiederum definiert Ihre Aufnahme dieser Header-Datei keine Variablen, sondern setzt lediglich voraus, dass sie an einer anderen Stelle vorhanden sind!

5
aardvarkk

Sie haben den Header eingefügt, aber nicht die erforderliche Bibliothek (Implementierung dieser externen Objekte).

was ist diese Bibliothek? Hast du es aus dem Internet heruntergeladen (Open Source)? Wenn ja, überprüfen Sie die Website auf LIB-Dateien (die Bibliothek).

3
NirMH

Ich möchte dies nur für andere da draußen werfen, die in Zukunft über diesen Beitrag stolpern könnten.

Bei der Arbeit aktualisiere ich derzeit Projekte von vs2010 (oder höher) auf vs2012 und bin auf diesen Fehler in einem der Projekte gestoßen. Aus irgendeinem Grund habe ich beschlossen, meine zusätzlichen Abhängigkeiten in Linker -> Input -> Additional Dependencies neu zu ordnen, und es hat meinen Fehler behoben.

Ich weiß nicht, was sich mit dem Linker von 2010 bis 2012 geändert hat, aber anscheinend musste die .lib-Datei, auf die ich angewiesen war, neu angeordnet werden.

Es mag nicht üblich sein, aber wenn Sie dieses Problem haben und es viele externe Abhängigkeiten gibt, ist es einfach genug, dies zu versuchen: Setzen Sie einfach die Abhängigkeit, die diesen Fehler auslöst, an das Ende der Liste und erstellen Sie das Projekt neu.

Hoffentlich hilft das eines Tages jemandem! Viel Spaß beim Codieren!

1
TheRealKernel

Wir hatten ein ähnliches Problem bei der Verwendung der Windows Ras-API. Das Problem wurde durch Hinzufügen eines geeigneten # Pragma-Kommentars behoben.

0
Pramod

Sie sollten sich den Beitrag "Was ist ein nicht definierter Verweis/ungelöster externer Symbolfehler und wie behebe ich ihn?" Ansehen.

Es enthält eine hervorragende Erklärung für nicht aufgelöste externe Symbole und schrittweise Tipps zum Debuggen, wie Sie Ihren Fehler beheben können.

https://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix

0
Merav Kochavi