c++Builder als Windows 64bit: [ilink64 Fehler] Fatal: Invalid object file: WS2_32.LIB
-
Moin,
in einem c++Builder - Windows 64bit - Projekt werden die Indy-Komponenten verwendet und winsock2 eingebunden:#include <winsock2.h>
#include <IdBaseComponent.hpp> #include <IdComponent.hpp> #include <IdTCPClient.hpp> #include <IdTCPConnection.hpp> #include <IdThreadComponent.hpp>
#include <windows.h> #include <vcl.h>
Der Linker möchte gerne die WS2_32.LIB verwenden:
[ilink64 Fehler] Fatal: Invalid object file 'C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\21.0\LIB\WIN32C\DEBUG\WS2_32.LIB'
oder
[ilink64 Fehler] Fatal: Unable to open file 'WS2_32.LIB'
Die ws2_32.a ignoriert er:
C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\release\psdk\ws2_32.a
In den Projekt-Optionen (Bibliothekspfad) ist eingetragen:
C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\release C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\release\psdk C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\debug
Sobald ich in die Projekt-Optionen (Bibliothekspfad) eingetrage:
C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\21.0\LIB\WIN32C\DEBUG
meldet der Linker:
[ilink64 Fehler] Fatal: Invalid object file 'C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\21.0\LIB\WIN32\RELEASE\RTL.BPI'
Wie binde ich ws2_32 in 64bit-Programme ein?
Vielen Dank für die Hilfe!
-
Probier das mal in der main-cpp:
#pragma link "ws2_32.a"
-
Hallo DocShoe,
danke für den Tipp:Der Linker krallt sich immer noch an der WS2_32.LIB' fest.
Wer steckt denn dahinter?[ilink64 Fehler] Fatal: Unable to open file 'WS2_32.LIB'
#include <vcl.h> #pragma hdrstop #include <tchar.h> #include "windows.h" #include <Vcl.Styles.hpp> #include <Vcl.Themes.hpp> #pragma link "ws2_32.a"
In den Projekt-Optionen (Bibliothekspfad) ist eingetragen:
C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\release C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\release\psdk C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\debug
-
Du könntest deine Projektdatei (.cbproj) mal durchsuchen, ob da die lib explizit eingetragen ist. Falls ja, entfern´ sie mal und guck, ob der Linker dann zufrieden ist. Mach vorher aber unbedingt ´ne Kopie.
-
Ha! Gute Idee :o)
Die cbpro ist frei von ws2_32.lib, aber in den Tiefen des Projektes gibt es eine Nur-Header-Datei (modbus.h) mit:
#pragma comment(lib, "Ws2_32.lib")
Geändert in:
#if defined(_WIN64) #pragma link "ws2_32.a" #else #pragma link "ws2_32.lib" #endif
und läuft.
Vielen Dank !!