Здравствуйте! Не могу разобраться, как скомпилировать программу в g++ (MinGW-w64) для Windows. Компилирую так:
g++ -o app.exe app_source.cpp
g++ ругается, что не найден файл conio.h. Помимо этого, в файле process.h должно быть объявление функции _beginthread.
Об этом написано на microsoft.com.
Вывод компилятора:
spoilerC:\xcvbnm>cmd.exe
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
C:\xcvbnm>g++ -o app.exe appsource.cpp
appsource.cpp:6:10: fatal error: conio.h: No such file or directory
#include <conio.h>
^~~~~~~~~
compilation terminated.
C:\xcvbnm>g++ -o app.exe appsource.cpp
appsource.cpp: In function 'void thread_proc_example(void*)':
appsource.cpp:14:2: error: '_endthread' was not declared in this scope
_endthread();
^~~~~~~~~~
appsource.cpp:14:2: note: suggested alternative: '_hread'
_endthread();
^~~~~~~~~~
_hread
appsource.cpp: In function 'int main(int, TCHAR**)':
appsource.cpp:21:2: error: '_beginthread' was not declared in this scope
_beginthread( thread_proc_example, 0, 0 );
^~~~~~~~~~~~
appsource.cpp:21:2: note: suggested alternative: 'OpenThread'
_beginthread( thread_proc_example, 0, 0 );
^~~~~~~~~~~~
OpenThread
C:\xcvbnm>
Хочу построить приложение, использующее только i386, которое не тянет за собой никаких библиотек (вроде cygwin1.dll), и у которого crt будет слинковано статически, то есть чтобы можно было запустить и на win98, и на win10.
Что сделать чтобы всё компилировалось? Или что почитать, чтобы разобраться?
Исходник:
spoiler#include <windows.h>
#include <process.h>
#include <stddef.h>
#include <stdlib.h>
//#include <conio.h>
#include <stdio.h>
#include <tchar.h>
using namespace std;
void __cdecl thread_proc_example( void* param )
{
_endthread();
return;
}
int main( int argc, TCHAR* argv[])
{
MessageBoxA(0, "String 01\n", "String 02\n", MB_ICONINFORMATION);
_beginthread( thread_proc_example, 0, 0 );
return 0;
}