Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536

Проблема с Embarcadero DevC++ 6.3 и TDM-GCC 9.2.0

11.09.2021, 16:45. Показов 4353. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При компиляции стандартного примера по WinAPI в Windows 10 при создании проекта Project1.dev (и других проектов )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <windows.h>
 
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
    switch(Message) {
        
        /* Upon destruction, tell the main thread to stop */
        case WM_DESTROY: {
            PostQuitMessage(0);
            break;
        }
        
        /* All other messages (a lot of them) are processed using default procedures */
        default:
            return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
}
 
/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    WNDCLASSEX wc; /* A properties struct of our window */
    HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    MSG msg; /* A temporary location for all messages */
 
    /* zero out the struct and set the stuff we want to modify */
    memset(&wc,0,sizeof(wc));
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.lpfnWndProc   = WndProc; /* This is where we will send messages to */
    wc.hInstance     = hInstance;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    
    /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszClassName = "WindowClass";
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */
 
    if(!RegisterClassEx(&wc)) {
        MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
    hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, /* x */
        CW_USEDEFAULT, /* y */
        640, /* width */
        480, /* height */
        NULL,NULL,hInstance,NULL);
 
    if(hwnd == NULL) {
        MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
    /*
        This is the heart of our program where all input is processed and 
        sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
        this loop will not produce unreasonably high CPU usage
    */
    while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */
        TranslateMessage(&msg); /* Translate key codes to chars if present */
        DispatchMessage(&msg); /* Send it to WndProc */
    }
    return msg.wParam;
}
выдает, например
Code
1
2
C:\Program Files (x86)\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe cannot open output file E:\folder0\main.exe: Permission denied
E:\folder0\collect2.exe [Error] ld returned 1 exit status
Сам файл не появляется. В старом эта ошибка появлялась реже.
Возможно, это связано с опциями безопасности Windows.

Добавлено через 2 минуты
При компиляции некоторых консольных приложений , в том числе для форума (по аттенюатору) в этой версии через несколько раз (но приложение не висит уже запущенным ) проявляется такая же ошибка.

Добавлено через 17 минут
Взаимодействуют ли линкер и компилятор сокетами между собой, вызывая друг друга? Может , после очередного сервис-пака для "винды" их блокирует винда, думая, что это признаки вирусов или взлома (но компилятор уже Эмбаркадеровский! )?

Добавлено через 55 минут
Перенес на диск C , пересконфигурировал на зависимость путей от диска С, поставил компилятор просто в папку на диске C,
Bash
1
2
3
cd C:\Embarcadero\Dev-Cpp\TDM-GCC-64\bin
   g++.exe "C:\folder0\main.cpp" -o "C:\folder0\main.exe" -g3 -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\include" -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\include" -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\4.9.2\include" -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++" -L"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib" -L"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib" -static-libgcc -g3
pause 0
файл скомпилировался.

Удалил файл, скомпилировал из среды - скомпилировался.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2021, 16:45
Ответы с готовыми решениями:

Tdm-gcc CryptImportPublicKeyInfo
можно ли на TDM-GCC скомпилировать функции электронной подписи? почему то функция CryptImportPublicKeyInfo() не определена в файле...

TDM-GCC 4.7.1 и _wfopen_s
#include &lt;stdio.h&gt; int main (void) { //long index; wchar_t* filename = new wchar_t; //swprintf(filename,L&quot;%d&quot;, index); ...

Время Компиляции TDM-GCC
Компилирую простую &quot;Hello, World&quot; программу на DEV CPP, занимает ~6 секунд. Компилирую тот же код в virtualbox на DEV CPP занимает ~1...

6
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
11.09.2021, 17:01  [ТС]
Пример папки folder0
Вложения
Тип файла: zip folder0.zip (951.4 Кб, 9 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
11.09.2021, 18:27  [ТС]
main.cpp отдельно( без проекта,если открыть через правая кнопка мыши на main.cpp -контекстное меню- открыть с помощью DevC++6.3 ->) и скомпилировать 64 -битно с черным стартерным окном компилирует, но не рисует окружности

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//main.cpp
#include <windows.h>
  
 #include <wingdi.h> //можно отключить
#include <cmath>
#define ROUND(a) ((int) (a + 0.5))
/* set window handle */
static HWND sHwnd;
static COLORREF redColor=RGB(255,0,0);
static COLORREF blueColor=RGB(0,0,255);
static COLORREF greenColor=RGB(0,255,0);
 
void SetWindowHandle(HWND hwnd){
    sHwnd=hwnd;
}
 
/* SetPixel */
   
  
void set_Pixel(int x, int y)
   {
    if (sHwnd==NULL){
       MessageBox(NULL,"sHwnd was not initialized !","Error",MB_OK|MB_ICONERROR);
   //  MessageBox(NULL,"Registering the class failled","Error",MB_OK|MB_ICONERROR);
        exit(0);
    }
  COLORREF   color= redColor; 
    HDC hdc=GetDC(sHwnd);
   // SetPixel(hdc,x,y,color);
    ReleaseDC(sHwnd,hdc);
    return;
}
 
void circlePoints(int xCenter, int yCenter, int x, int y){
    set_Pixel(xCenter + x, yCenter + y);
    set_Pixel(xCenter - x, yCenter + y);
    set_Pixel(xCenter + x, yCenter - y);
    set_Pixel(xCenter - x, yCenter - y);
    set_Pixel(xCenter + y, yCenter + x);
    set_Pixel(xCenter - y, yCenter + x);
    set_Pixel(xCenter + y, yCenter - x);
    set_Pixel(xCenter - y, yCenter - x);
 
}
    
void drawCircle(int xCenter, int yCenter, int radius){
    int x = 0;
    int y = radius;
    int p = 1 - radius;
    circlePoints(xCenter, yCenter, x, y);
    while (x < y){
        x++;
        if (p < 0){
            p += 2 * x + 1;
        }else{
            y--;
            p += 2 * (x - y) + 1;
        }
        circlePoints(xCenter, yCenter, x, y);
    }
}
/* Window Procedure WndProc */
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    switch(message){
        case WM_PAINT:
            SetWindowHandle(hwnd);
            drawCircle(200, 200, 100);
            break;
        case WM_CLOSE: // FAIL THROUGH to call DefWindowProc
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        default:
        break; // FAIL to call DefWindowProc //
    }
    return DefWindowProc(hwnd,message,wParam,lParam);
}
 
 
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iCmdShow){
    static TCHAR szAppName[] = TEXT("Circle");
    WNDCLASS wndclass;
    wndclass.style         = CS_HREDRAW|CS_VREDRAW ;
    wndclass.lpfnWndProc   = WndProc ;
    wndclass.cbClsExtra    = 0 ;
    wndclass.cbWndExtra    = 0 ;
    wndclass.hInstance     = hInstance ;
    wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
    wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+0);
     //wndclass.hbrBackground =  (HBRUSH)(COLOR_WINDOW+1)     
    //wndclass.hbrBackground =(HBRUSH) GetStockObject (WHITE_BRUSH) ;
    wndclass.lpszMenuName  = NULL ;
    wndclass.lpszClassName = szAppName ;
 
    // Register the window //
    if (!RegisterClass(&wndclass)){
        MessageBox(NULL,"Registering the class failled","Error",MB_OK|MB_ICONERROR);
        exit(0);
    }
 
    // CreateWindow //
    HWND hwnd=CreateWindow(szAppName,"Mid Point Circle Drawing - Programming Techniques",
                WS_OVERLAPPEDWINDOW,
                 CW_USEDEFAULT,
                 CW_USEDEFAULT,
                 CW_USEDEFAULT,
                 CW_USEDEFAULT,
                 NULL,
                 NULL,
                 hInstance,
                 NULL);
    if (!hwnd){
        MessageBox(NULL,"Window Creation Failed!","Error",MB_OK);
        exit(0);
    }
    // ShowWindow and UpdateWindow //
    ShowWindow(hwnd,iCmdShow);
    UpdateWindow(hwnd);
 
    // Message Loop //
    MSG msg;
    while ( GetMessage(&msg,NULL,0,0)){
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    /* return no error to the operating system */
    return 0;
}
, а также с помощью файла (без переносов в строчке компиляции даже с -lgdi32 -lm )
Bash
1
2
3
4
cd C:\Embarcadero\Dev-Cpp\TDM-GCC-64\bin
rem  make -f  "C:\folder0\f2\Makefile.win" all
  g++.exe "C:\folder0\f2\main.cpp"  -o "C:\folder0\f2\main.exe"      -lgdi32 -lm  -g3  -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\include" -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\include"  -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\9.2.0\include"  -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\c++" -L"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib"  -L"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib" -static-libgcc -g3
pause 0
не рисует.
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
11.09.2021, 18:30  [ТС]
При замене main.cpp на пример файла с контроллами (main2.cpp), (например, программы управления контроллером) компилируется(с черным окном ). При создании проекта и подключении туда main2.cpp как main.cpp и иконки глючит на мейкфайле.
Вложения
Тип файла: zip f2.zip (705.8 Кб, 6 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
11.09.2021, 20:06  [ТС]
Да, без -lgdi32 -lm не билдится

C++
1
SetPixel(hdc,x,y,color);
(забыл "разфиксать")
С bat-файлом
Bash
1
2
3
4
cd C:\Embarcadero\Dev-Cpp\TDM-GCC-64\bin
rem  make -f  "C:\folder0\f2\Makefile.win" all
  g++.exe "C:\folder0\f2\main.cpp"  -o "C:\folder0\f2\main.exe"   -lgdi32 -lm       -g3  -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\include" -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\include"  -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\9.2.0\include"  -I"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\c++" -L"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\lib"  -L"C:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib" -static-libgcc -g3
pause 0
рисует (даже при компиляции на рабочем столе, если изменить путь).

Добавлено через 1 минуту
С мейкфайлом иногда глючит (если в линекрное окно добавить -lgdi32 -lm).
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
11.09.2021, 20:14  [ТС]
Помейкалось с рабочего стола в следующей папке и с иконкой без ключей -lgdi32 -lm линкера в окне для линкера :
Вложения
Тип файла: zip f2.zip (1.04 Мб, 6 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
11.09.2021, 21:10  [ТС]
Компилировал 64-разрядно создав. Пробовал на 32-бит- глючит
Переоткрыл проект Project1.dev, скомпилировал 64- выдает :

Code
1
2
3
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe cannot open output file Project1.exe: Permission denied
C:\Users\(имя пользователя, здесь вырезано )\Desktop\f2\collect2.exe    [Error] ld returned 1 exit status
26      C:\Users\(имя пользователя, здесь вырезано )\Desktop\f2\Makefile.win    recipe for target 'Project1.exe' failed
Подсвечивает
Code
1
2
$(BIN): $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
в

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Project: Project1
# Makefile created by Embarcadero Dev-C++ 6.3
 
CPP      = g++.exe -D__DEBUG__
CC       = gcc.exe -D__DEBUG__
WINDRES  = windres.exe
RES      = Project1_private.res
OBJ      = ../../../../folder0/f2/main.o $(RES)
LINKOBJ  = ../../../../folder0/f2/main.o $(RES)
LIBS     = -L"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib" -L"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -g3
INCS     = -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include"
CXXINCS  = -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include/c++"
BIN      = Project1.exe
CXXFLAGS = $(CXXINCS) -g3
CFLAGS   = $(INCS) -g3
DEL      = C:\Embarcadero\Dev-Cpp\devcpp.exe INTERNAL_DEL
 
.PHONY: all all-before all-after clean clean-custom
 
all: all-before $(BIN) all-after
 
clean: clean-custom
    ${DEL} $(OBJ) $(BIN)
 
$(BIN): $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
 
../../../../folder0/f2/main.o: ../../../../folder0/f2/main.cpp
    $(CPP) -c ../../../../folder0/f2/main.cpp -o ../../../../folder0/f2/main.o $(CXXFLAGS)
 
Project1_private.res: Project1_private.rc 
    $(WINDRES) -i Project1_private.rc --input-format=rc -o Project1_private.res -O coff
Добавлено через 33 минуты
При создании на рабочем столе новой папки и вводе в main.cpp текста с сохранением в ней для 32бит не билдит :
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe i386:x86-64 architecture of input file `main.o' is incompatible with i386 output
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe main.o: in function `Z9set_Pixelii':
25      C:\Users\yarpz\Desktop\f4\main.cpp  undefined reference to `exit'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:28: undefined reference to `_imp_GetDC'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:30: undefined reference to `_imp_SetPixel'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:31: undefined reference to `_imp_ReleaseDC'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe main.o: in function `Z7WndProcP6HWND__jyx':
73      C:\Users\yarpz\Desktop\f4\main.cpp  undefined reference to `_imp_PostQuitMessage'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:78: undefined reference to `_imp_DefWindowProcA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe main.o: in function `WinMain':
90      C:\Users\yarpz\Desktop\f4\main.cpp  undefined reference to `_imp_LoadIconA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:91: undefined reference to `_imp_LoadCursorA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:99: undefined reference to `_imp_RegisterClassA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:100: undefined reference to `_imp_MessageBoxA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:101: undefined reference to `exit'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:105: undefined reference to `_imp_CreateWindowExA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:116: undefined reference to `_imp_MessageBoxA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:117: undefined reference to `exit'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:120: undefined reference to `_imp_ShowWindow'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:121: undefined reference to `_imp_UpdateWindow'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:125: undefined reference to `_imp_GetMessageA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:126: undefined reference to `_imp_TranslateMessage'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:\Users\yarpz\Desktop\f4/main.cpp:127: undefined reference to `_imp_DispatchMessageA'
c:\Embarcadero\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/lib32/libmingw32.a(lib32_libmingw32_a-crt0_c.o): in function `main':
18      C:\crossdev\src\mingw-w64-v7-git20191109\mingw-w64-crt\crt\crt0_c.c undefined reference to `WinMain@16'
C:\Users\yarpz\Desktop\f4\collect2.exe  [Error] ld returned 1 exit status
25      C:\Users\yarpz\Desktop\f4\Makefile.win  recipe for target 'Project2.exe' failed

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Project: Project2
# Makefile created by Embarcadero Dev-C++ 6.3
 
CPP      = g++.exe -D__DEBUG__
CC       = gcc.exe -D__DEBUG__
WINDRES  = windres.exe
OBJ      = main.o
LINKOBJ  = main.o
LIBS     = -L"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/lib32" -static-libgcc -mwindows -m32 -g3
INCS     = -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include"
CXXINCS  = -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include/c++"
BIN      = Project2.exe
CXXFLAGS = $(CXXINCS) -m32 -g3
CFLAGS   = $(INCS) -m32 -g3
DEL      = C:\Embarcadero\Dev-Cpp\devcpp.exe INTERNAL_DEL
 
.PHONY: all all-before all-after clean clean-custom
 
all: all-before $(BIN) all-after
 
clean: clean-custom
    ${DEL} $(OBJ) $(BIN)
 
$(BIN): $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
 
main.o: main.cpp
    $(CPP) -c main.cpp -o main.o $(CXXFLAGS)
а при переключении на 64 бит не закрывая программы (без иконки) билдится и рисует :

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Project: Project2
# Makefile created by Embarcadero Dev-C++ 6.3
 
CPP      = g++.exe -D__DEBUG__
CC       = gcc.exe -D__DEBUG__
WINDRES  = windres.exe
OBJ      = main.o
LINKOBJ  = main.o
LIBS     = -L"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib" -L"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -g3
INCS     = -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include"
CXXINCS  = -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include" -I"C:/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include/c++"
BIN      = Project2.exe
CXXFLAGS = $(CXXINCS) -g3
CFLAGS   = $(INCS) -g3
DEL      = C:\Embarcadero\Dev-Cpp\devcpp.exe INTERNAL_DEL
 
.PHONY: all all-before all-after clean clean-custom
 
all: all-before $(BIN) all-after
 
clean: clean-custom
    ${DEL} $(OBJ) $(BIN)
 
$(BIN): $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
 
main.o: main.cpp
    $(CPP) -c main.cpp -o main.o $(CXXFLAGS)
а тогда блокировало пермиссии для 64 бит.

Добавлено через 5 минут
Влияние особенностей NTFS , прав системы и пользователей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2021, 21:10
Помогаю со студенческими работами здесь

TDM Gcc + wxwidget 3.0 и кодировки при переводе
Добрый день! Хочу сразу сказать, что я не являюсь разработчиком, я скорее переводчик. Однако проблемма с которой столкнулаяь наша...

Ругается компилятор TDM-GCC 4.9.2 32-bit Release
/* Для представления куба на картинную плоскость (экран компьютера) воспользуемся проекцией Кабине, приведенной выше. После проектирования...

Русский язык в консоли Windows 10. IDE: CodeLite. Компилятор: TDM-GCC-32
Здравствуйте. Windows 10. IDE: CodeLite. Компилятор: TDM-GCC-32 В файле main.cpp такой код: #include &lt;iostream&gt; #include...

Code::Blocks 16.01, wxWidgets 3.0.3, TDM-GCC. Что не так при запуске exe-файла приложения? (+)
Долго бился над связкой Code::Blocks и wxWidgets. Наконец добился, получил первый исполняемый файл. Но при его запуске получаю сообщение,...

Code::Blocks 16.01, wxWidgets 3.0.3, TDM-GCC. Что не так при запуске exe-файла полученного приложения? (+)
Долго бился над связкой Code::Blocks и wxWidgets. Наконец добился, получил первый исполняемый файл. Но при его запуске получаю сообщение,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru