Compiler-Fehler bei Release-Build
-
Hallo Forum,
ich habe ein WinAPI-Programm welches sich im Debug-Modus klaglos compiliere läst, aber im Release-Modus zu folgender Fehlermeldung führt:CLEAN SUCCESSFUL (total time: 653ms)
cd 'C:\Users\Monika\Daten\MeineProgramme\PerspektiveKoerper\Taschenrechner_1'
C:\cygwin\bin\make.exe -f Makefile CONF=Release
"/usr/bin/make" -f nbproject/Makefile-Release.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory '/cygdrive/c/Users/Monika/Daten/MeineProgramme/PerspektiveKoerper/Taschenrechner_1'
"/usr/bin/make" -f nbproject/Makefile-Release.mk dist/Release/Cygwin-Windows/taschenrechner_1.exe
make[2]: Entering directory '/cygdrive/c/Users/Monika/Daten/MeineProgramme/PerspektiveKoerper/Taschenrechner_1'
mkdir -p build/Release/Cygwin-Windows
rm -f "build/Release/Cygwin-Windows/calculator.o.d"
g++ -c -O2 -MMD -MP -MF "build/Release/Cygwin-Windows/calculator.o.d" -o build/Release/Cygwin-Windows/calculator.o calculator.cpp
mkdir -p build/Release/Cygwin-Windows
rm -f "build/Release/Cygwin-Windows/main.o.d"
g++ -c -O2 -MMD -MP -MF "build/Release/Cygwin-Windows/main.o.d" -o build/Release/Cygwin-Windows/main.o main.cpp
mkdir -p dist/Release/Cygwin-Windows
g++ -o dist/Release/Cygwin-Windows/taschenrechner_1 build/Release/Cygwin-Windows/calculator.o build/Release/Cygwin-Windows/main.o
build/Release/Cygwin-Windows/main.o:main.cpp:(.text+0x53c): undefined reference to `_imp__CreateSolidBrush@4'
collect2: error: ld returned 1 exit status
make[2]: *** [nbproject/Makefile-Release.mk:64: dist/Release/Cygwin-Windows/taschenrechner_1.exe] Error 1
make[2]: Leaving directory '/cygdrive/c/Users/Monika/Daten/MeineProgramme/PerspektiveKoerper/Taschenrechner_1'
make[1]: *** [nbproject/Makefile-Release.mk:60: .build-conf] Error 2
make[1]: Leaving directory '/cygdrive/c/Users/Monika/Daten/MeineProgramme/PerspektiveKoerper/Taschenrechner_1'
make: *** [nbproject/Makefile-impl.mk:40: .build-impl] Error 2BUILD FAILED (exit value 2, total time: 4s)
Der betreffende C++ Code:
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hPrI, PSTR szCmdLine, int iCmdShow) { char szName[] = "Fensterklasse"; HBRUSH MyBrush = CreateSolidBrush(RGB(0, 150, 255)); WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hI; wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)MyBrush; wc.lpszMenuName = NULL; wc.lpszClassName = szName; RegisterClass(&wc); HWND hwnd = CreateWindow( // Fenster erstellen szName, "Rechner", WS_SYSMENU | WS_THICKFRAME, 50, 50, 210, 400, NULL, // Handle des Elternfensters nicht vorhanden NULL, hI, NULL ); ShowWindow(hwnd, iCmdShow); // SetForegroundWindow(hwnd); // SetFocus(hwnd); UpdateWindow(hwnd);
Kann mir da jemand helfen,
lg heinz
-
Dir fehlen beim Linken die WinAPI-Libs (u.a.
Gdi32.lib
).
Vergleiche mal mit dem Debug-Build die Zeile, welche mitg++ -o
startet.
-
@Th69 sagte in Compiler-Fehler bei Release-Build:
Dir fehlen beim Linken die WinAPI-Libs (u.a.
Gdi32.lib
).
Vergleiche mal mit dem Debug-Build die Zeile, welche mitg++ -o
startet.Danke Th69, das war die Lösung,
lg heinz