Minimale Win32 Anwendung von MinGW nach VS2010: LNK1104: Datei "LIBC.lib" kann nicht geöffnet werden.
-
Hallo,
ich habe einen minimalcode, der mir ein Win32 Anwendungsgrundgerüst mit unsichtbarem Hauptfenster macht.
Unter MinGW läuft das auch ganz famos. Wenn ich allerdings versuche, es mit VS2010 zu kompilieren, erhalte ich den Fehler
LNK1104: Datei "LIBC.lib" kann nicht geöffnet werden.Durch ein bißchen Googlen habe ich herausgefunden, dass es diese libc.lib seit VS2008 nicht mehr gibt und die Win32-Anwendung dadurch eine etwas andere Struktur hat.
Daher meine Frage:
Was muss ich an diesem Code ändern, damit VS2010 ihn mit den neuen libraries zu einer funktionierenden win32-Anwendung linken kann?#include <iostream> #include <windows.h> #include <cstdlib> const WCHAR* AppTitle=L"Hello"; LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); int WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int) { WNDCLASS wc; HWND hwnd; MSG msg; wc.style=CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc=WindowProc; wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hInstance=hInst; wc.hIcon=LoadIcon(NULL,IDI_WINLOGO); wc.hCursor=LoadCursor(NULL,IDC_ARROW); wc.hbrBackground=(HBRUSH)COLOR_WINDOWFRAME; wc.lpszMenuName=NULL; wc.lpszClassName=AppTitle; if (!RegisterClass(&wc)) return 0; hwnd = CreateWindow(AppTitle,AppTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,100,100, NULL,NULL,hInst,NULL); if (!hwnd) return EXIT_FAILURE; ShowWindow(hwnd, SW_HIDE); UpdateWindow(hwnd); while (GetMessage(&msg,NULL,0,0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return EXIT_SUCCESS; } LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { switch (msg) { case WM_PAINT: { PAINTSTRUCT ps; HDC dc; RECT r; GetClientRect(hwnd,&r); dc=BeginPaint(hwnd,&ps); DrawText(dc,L"Hello, World",-1,&r,DT_WORDBREAK|DT_CENTER|DT_VCENTER); EndPaint(hwnd,&ps); break; } case WM_DESTROY: PostQuitMessage(0); break; case WM_CLOSE: std::exit(0); break; default: return DefWindowProc(hwnd, msg, wparam, lparam); } return 0; }
Philipp
-
Ich vermute mal dass Du kein *neues* Projekt angelgt hast, sondern ein altes Upgegradet hast, oder?
Entferne halt die LIBS, die es nicht mehr gibt aus Deinen Projekteinstellungen, dann mekert auch niemand, wenn es diese nicht gibt...
-
Hi!
Ich habe überhaupt kein "Projekt" angelegt, da ich nicht Visual "Studio" benutze, sondern nur cl und link von Visual C++2010 um mit nmake ein Makefile-Projekt zu übersetzen. Daher kann ich mit "Projekteinstellungen" garnichts anfangen, der Hund muss irgendwo in den Compiler- oder Linkersettings begraben liegen.
Hier die entsprechende Stelle des Makefiles:
CC = cl CXX = cl DEFINES = -DUNICODE -DQT_LARGEFILE_SUPPORT -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN CFLAGS = -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 $(DEFINES) CXXFLAGS = -nologo -Zm200 -Zc:wchar_t- -O2 -MD -GR -EHsc -W3 -w34100 -w34189 $(DEFINES) INCPATH = -I"include\simpleini" LINK = link LFLAGS = /NOLOGO /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:"release\scs.intermediate.manifest" /VERSION:1.00 LIBS = Ws2_32.lib release\scs_resource.res
Wo ist da festgelegt, dass gegen lic.lib gelinkt werden soll???
Philipp
-
Das ist vermutlich nicht das ganze makefile...
-
Jochen Kalmbach schrieb:
Das ist vermutlich nicht das ganze makefile...
Nein, aber der Rest ist eigentlich nur noch das Festlegen der Rules, welche Objects von welchen Dateien abhängen.
Aber gut, der Vollständigkeit halber:
############################################################################# # Makefile for building: scs # Generated by qmake (2.01a) (Qt 4.6.3) on: Fr 22. Okt 13:27:10 2010 # Project: scs.pro # Template: app ############################################################################# ####### Compiler, tools and options CC = cl CXX = cl DEFINES = -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN CFLAGS = -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 $(DEFINES) CXXFLAGS = -nologo -Zm200 -Zc:wchar_t- -O2 -MD -GR -EHsc -W3 -w34100 -w34189 $(DEFINES) INCPATH = -I"include\simpleini" LINK = link LFLAGS = /NOLOGO /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:"release\scs.intermediate.manifest" /VERSION:1.00 LIBS = Ws2_32.lib /LIBPATH:lib/win32 lib/win32\FSUIPC_User.lib release\scs_resource.res QMAKE = c:\Qt\qt-4.6.3-msvc\bin\qmake.exe IDC = c:\Qt\qt-4.6.3-msvc\bin\idc.exe IDL = midl ZIP = zip -r -9 DEF_FILE = RES_FILE = release\scs_resource.res COPY = copy /y COPY_FILE = $(COPY) COPY_DIR = xcopy /s /q /y /i DEL_FILE = del DEL_DIR = rmdir MOVE = move CHK_DIR_EXISTS= if not exist MKDIR = mkdir INSTALL_FILE = $(COPY_FILE) INSTALL_PROGRAM = $(COPY_FILE) INSTALL_DIR = $(COPY_DIR) ####### Output directory OBJECTS_DIR = release ####### Files SOURCES = navcalc.cpp \ ... usw ... OBJECTS = release\navcalc.obj \ ...usw... QMAKE_TARGET = scs DESTDIR = FS\scs\ #avoid trailing-slash linebreak TARGET = scs.exe DESTDIR_TARGET = FS\scs\scs.exe ####### Implicit rules .SUFFIXES: .c .cpp .cc .cxx {.}.cpp{release\}.obj:: $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< $< << {.}.cc{release\}.obj:: $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< $< << {.}.cxx{release\}.obj:: $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< $< << {.}.c{release\}.obj:: $(CC) -c $(CFLAGS) $(INCPATH) -Forelease\ @<< $< << ####### Build rules first: all all: Makefile.Release $(DESTDIR_TARGET) $(DESTDIR_TARGET): $(OBJECTS) release\scs_resource.res $(LINK) $(LFLAGS) /OUT:$(DESTDIR_TARGET) @<< $(OBJECTS) $(LIBS) << mt.exe -nologo -manifest "release\scs.intermediate.manifest" -outputresource:$(DESTDIR_TARGET);1 release\scs_resource.res: scs_resource.rc rc $(DEFINES) -fo release\scs_resource.res scs_resource.rc qmake: FORCE @$(QMAKE) -win32 -o Makefile.Release scs.pro dist: $(ZIP) scs.zip $(SOURCES) $(DIST) scs.pro c:\Qt\qt-4.6.3-msvc\mkspecs\qconfig.pri c:\Qt\qt-4.6.3-msvc\mkspecs\features\qt_functions.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\qt_config.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\exclusive_builds.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\default_pre.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\default_pre.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\release.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\debug_and_release.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\default_post.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\default_post.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\build_pass.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\rtti.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\exceptions.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\warn_on.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\windows.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\stl.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\shared.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\embed_manifest_exe.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\embed_manifest_dll.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\win32\thread_off.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\resources.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\uic.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\yacc.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\lex.prf c:\Qt\qt-4.6.3-msvc\mkspecs\features\include_source_dir.prf RESOURCES FORMS IMAGES YACCSOURCES YACCSOURCES LEXSOURCES clean: compiler_clean -$(DEL_FILE) release\navcalc.obj ...usw... -$(DEL_FILE) release\scs.intermediate.manifest FS\scs\scs1.exp -$(DEL_FILE) release\scs_resource.res distclean: clean -$(DEL_FILE) $(DESTDIR_TARGET) -$(DEL_FILE) Makefile.Release check: first compiler_rcc_make_all: compiler_rcc_clean: compiler_uic_make_all: compiler_uic_clean: compiler_image_collection_make_all: qmake_image_collection.cpp compiler_image_collection_clean: -$(DEL_FILE) qmake_image_collection.cpp compiler_yacc_decl_make_all: compiler_yacc_decl_clean: compiler_yacc_impl_make_all: compiler_yacc_impl_clean: compiler_lex_make_all: compiler_lex_clean: compiler_clean: ####### Compile release\navcalc.obj: navcalc.cpp navcalc.h ..usw... ####### Install install: FORCE uninstall: FORCE FORCE:
-
Und Du bindest ja noch andere LIBs ein, die auch wieder eine Import-LIB mitbringen können... da würde ich mal suchen (z.B. FSUIPC_User.lib; oder auch andere).
Alternativ solltet Du mal das /VERBOSE im Linker angeben, damit Du siehst welche LIBs er sich WARUM anzieht....
-
Ah super, die Information hat mir gefehlt.
So, weiter im Text: Ich habe jetzt eine 50 Bildschirmseiten lange Ausgabe
Die habe ich mal nach "libc" durchsucht.
Dabei finde ich genau einen Treffer, nämlich "Datei "LIBC.lib" kann nicht geöffnet werden." Duh!Und wie finde ich jetzt heraus, wer die libc.lib angefordert hat?
Die Zeilen unmittelbar davor lauten
__crt_debugger_hook gefunden. In "MSVCRT.lib(gs_report.obj)" referenziert "MSVCRT.lib(MSVCR100.dll)" geladen "public: void __thiscall type_info::_type_info_dtor_internal_method(void)" (?_type_info_dtor_internal_method@type_info@@QAEXXZ) gefunden. In "MSVCRT.lib(typeinfo_dtor_32.obj)" referenziert "MSVCRT.lib(MSVCR100.dll)" geladen __invoke_watson gefunden. In "MSVCRT.lib(fp8.obj)" referenziert "MSVCRT.lib(MSVCR100.dll)" geladen __controlfp_s gefunden. In "MSVCRT.lib(fp8.obj)" referenziert "MSVCRT.lib(MSVCR100.dll)" geladen Durchsuchen von C:\Program Files\Microsoft Visual Studio 10.0\VC\LIB\OLDNAMES.lib: Durchsuchen von C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\mswsock.lib: Durchsuchen von C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\uuid.lib: LINK : fatal error LNK1104: Datei "LIBC.lib" kann nicht geöffnet werden.
-
Dann ist sie vermutlich per #pragma comment(lib, "...") irgendwo eingeflossen... such doch einfach mal mit einem Texteditor in den LIBs
-
Jochen Kalmbach schrieb:
Und Du bindest ja noch andere LIBs ein, die auch wieder eine Import-LIB mitbringen können... da würde ich mal suchen (z.B. FSUIPC_User.lib; oder auch andere).
Importlibs meint die, die mit
#pragma comment("lib"eingebunden werden?
Da muss ich dich enttäuschen, die fsuipc_user.h enthält kein #pragma link
Bliebe noch die ws2_32.lib (winsock2). Könnte die die libc.lib anfordern?
-
Jochen Kalmbach schrieb:
Dann ist sie vermutlich per #pragma comment(lib, "...") irgendwo eingeflossen... such doch einfach mal mit einem Texteditor in den LIBs
Negative, sir!
Habe gerade das ganze projekt mit includes rekursiv durchgegrept. Nur einen
# pragma comment(lib, "user32.lib")
habe ich gefunden. Nix mit libc.lib.
Das ist doch zum Mäuse melken!Philipp
-
So, jetzt weiß ich zumindest schonmal, was er haben will.
Ich habe ihm eine 0Byte Datei mit Namen libc.lib zum linken hingeworfen. Damit sehe ich zumindest, welche Symbole er da rausholen will:fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __PostQuitMessage@4" in Funktion ""long __stdcall WindowProc(struct HWND__ *,uns igned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __EndPaint@8" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned i nt,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __DrawTextW@20" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __BeginPaint@8" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __GetClientRect@8" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsig ned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __DefWindowProcW@16" in Funktion ""long __stdcall WindowProc(struct HWND__ *,uns igned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __DispatchMessageW@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __TranslateMessage@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __GetMessageW@16" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __UpdateWindow@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __ShowWindow@8" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __CreateWindowExW@48" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __RegisterClassW@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __LoadCursorW@8" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp __LoadIconW@8" in Funktion "_WinMain@16". fsmessagewidget.obj : error LNK2019: Verweis auf nicht aufgelöst es externes Symbol "__imp__MessageBoxW@16" in Funktion ""public: virtual void __ thiscall XSPL::FSMessageWidget::display(void)" (?display@FSMessageWidget@XSPL@@U AEXXZ)". FSUIPC_User.lib(IPCuser.obj) : error LNK2019: Verweis auf nicht aufgelöstes exte rnes Symbol "__imp__SendMessageTimeoutA@28" in Funktion "_FSUIPC_Process". FSUIPC_User.lib(IPCuser.obj) : error LNK2019: Verweis auf nicht aufgelöstes exte rnes Symbol "__imp__wsprintfA" in Funktion "_FSUIPC_Open". FSUIPC_User.lib(IPCuser.obj) : error LNK2019: Verweis auf nicht aufgelöstes exte rnes Symbol "__imp__RegisterWindowMessageA@4" in Funktion "_FSUIPC_Open". FSUIPC_User.lib(IPCuser.obj) : error LNK2019: Verweis auf nicht aufgelöstes exte rnes Symbol "__imp__FindWindowExA@16" in Funktion "_FSUIPC_Open". FS\scs\scs.exe : fatal error LNK1120: 20 nicht aufgelöste externe Verweise.
wsprintfa ???
wide-char-stream-print-f-ansi ? Das gehört doch zur C-Laufzeitumgebung, oder?Philipp
-
Casesensitive?
Was Microsoft in aktuellen Quelltexten nicht mehr sehen will:
http://msdn.microsoft.com/en-us/library/bb288454.aspxHoffe mal, das ich das richtig interpretiere.
-
f.-th. schrieb:
Was Microsoft in aktuellen Quelltexten nicht mehr sehen will:
http://msdn.microsoft.com/en-us/library/bb288454.aspxDas ist mir bekannt. cl gibt da an entsprechenden Stellen auch eine Warnung aus.
Was mich hingegen stutzig macht ist folgendes:
Dieses Projekt, was ich hier kompiliere, kompiliere ich in zwei ausführungen:
-Als .dll ohne die oben zitierte main.cpp , dafür mit einer Datei, die verschiedene API-Callbacks offenlegt.
-Als .exe ohne die APIs, dafür mit der oben zitierten main.cpp, die das ganze zur win32 anwendung statt dll macht und ein unsichtbares Hauptfenster aufmacht.Wenn ich als dll ohne die winmain funktion kompiliere, baut alles perfekt und ich kann die dll in meinem System benutzen, problemlos.
Wenn ich hingegen als exe kompiliere, und die main.cpp mitkompiliert wird, fällt plötzlich der Linker auf die Fresse.Ergo muss der Fehler in der winmain liegen, die irgendetwas veraltetes referenziert, für das es keine lib mehr gibt.
Philipp
EDIT: Und mit mingw funktioniert beides, wollte ich nur noch erwähnen. Nur der Visual C++ 2010 Linker fällt über die libc.lib
-
Hab das VS2010 nicht:
Kannst du das zu Testzwecken dazu verleiten ein älteres VS200x zu simulieren.Aber so wie ich das in den Suchmaschinenergebnissen überflogen hab, haben schon viele vor dem Problem gesessen. Eine richtige Erfolgsmeldung hab ich aber auch nicht gesehen.
Hast du den Quellcode komplett vorliegen oder bindest du externe libs ein?
Im Zweifel noch mal das ganz Projekt neu kompilieren und linken. Manchmal sollen sich irgend welche übersetzten Reste hartnäckig in Caches halten. Aktuell hab ich das Problem zwar nicht - aber vor ein paar Jahren musste ich den PC ausschalten und mehrere Minuten warten bis sich der Rechner wieder sauber hochfahren lies.
MfG f.-th.
-
f.-th. schrieb:
Hast du den Quellcode komplett vorliegen oder bindest du externe libs ein?
Im Zweifel noch mal das ganz Projekt neu kompilieren und linken.
Das war ein weiterer guter Hinweis!
Habe die fsuipc_user.lib aus den quellen neu übersetzt mit vs2010
->
Jetzt kommt keine "LIBC.lib nicht gefunden" Meldung mehr, sondern sofort oben stehende nicht aufgelöste Symbole. Die 0Byte libc.lib habe ich natürlich inzwischen gelöscht.Aber was du sagst mit den Caches klingt ja etwas
Aber man weiß ja: "Reboot tut gut", alte Indianerweisheit aus dem Nordwesten der USA
-
Mühsam ernährt sich das Eichhörnchen.
So, einen Reboot später und fsuipc_user.lib ist aus den Quellen neu übersetzt mit vs 2010.
Ergebnis: Der Linker versucht NICHT MEHR, die libc.lib zu linken. Also war tatsächlich FSUIPC Schuld an diesem Fehler.
Jetzt verbleiben noch die folgenden nichtaufgelösten Symbole:
fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__PostQuitMessage@4" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__EndPaint@8" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DrawTextW@20" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__BeginPaint@8" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetClientRect@8" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DefWindowProcW@16" in Funktion ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DispatchMessageW@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__TranslateMessage@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetMessageW@16" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__UpdateWindow@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShowWindow@8" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__CreateWindowExW@48" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegisterClassW@4" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__LoadCursorW@8" in Funktion "_WinMain@16". fsmain.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__LoadIconW@8" in Funktion "_WinMain@16". fsmessagewidget.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__MessageBoxW@16" in Funktion ""public: virtual void __thiscall XSPL::FSMessageWidget::display(void)" (?display@FSMessageWidget@XSPL@@UAEXXZ)". ipcuser.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SendMessageTimeoutW@28" in Funktion "_FSUIPC_Process". ipcuser.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__wsprintfW" in Funktion "_FSUIPC_Open". ipcuser.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegisterWindowMessageW@4" in Funktion "_FSUIPC_Open". ipcuser.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__FindWindowExW@16" in Funktion "_FSUIPC_Open". FS\scs\scs.exe : fatal error LNK1120: 20 nicht aufgelöste externe Verweise.
Welche .lib fehlt hier, die diesen Krempel enthält?
Philipp
-
Beachte: Wenn Du selber LIB-Dateien hast/erstellst und diese dazulinkst, dann *musst* Du alle diese LIBs mit *genau dem gleichen* Compiler/Linker erstellen!
Aber zu Deinem Problem: Dir fehlen min. die Windows LIBs:
user32.libUnd vielleicht noch andere. Einfach in der Hilfe der jeweiligen Funktion nachschauen, was für eine LIB Du noch eintragen musst, z.B.:
RegisterWindowMessage
http://msdn.microsoft.com/en-us/library/ms644947
-
Jochen Kalmbach schrieb:
Aber zu Deinem Problem: Dir fehlen min. die Windows LIBs:
user32.libYEAAAHHHH!!
-lUser32 bei LIBS eingefügt und es LÄÄÄUUUUUFT!!!1
Herr Kalmbach, sie sind mein Held!
Strike!! MS Visual Studio besiegt. Tagesziel erreicht.
-> AFK Tee kochen.
EDIT: f.-th. ist natürlich auch mein Held, der mich darauf gebracht hat, FSUIPC neu zu übersetzen.
-
PhilippM schrieb:
MS Visual Studio besiegt. Tagesziel erreicht.
PS: Du brauchst kein VS um auf der Commandozeile zu compilieren... das geht auch mit dem PSDK (WSDK).