我正在尝试在Windows 7下的Qt Creator 4.9.1中启动教程示例。我使用MinGW 7.3.0 32 位编译器。
我在尝试使用来自<signal.h>.
我已经根据本主题的一些建议采取了一些步骤: struct sigaction 不完整错误
我尝试添加任何类型的宏定义,例如:_XOPEN_SOURCE或_POSIX_C_SOURCE. 我还添加QMAKE_CFLAGS += -std=gnu-99了 .pro 文件。
所有这些似乎都没有用。
我也安装了 Cygwin,但不清楚如何将它添加到 QT Creator 以及它是否对我有用。
//#define _POSIX_C_SOURCE 200809L
//#define _XOPEN_SOURCE_EXTENDED 1
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <windows.h>
void handle_interrupt(int sig){
puts("Прощай, жестокий мир..\n");
exit(1);
}
int catch_signal(int sig, void (*handler) (int)){
struct sigaction action;
action.sa_handler = handler;
sigemptyset(&action.sa_mask);
action.sa_flags = 0;
return sigaction(sig, &action, NULL);
}
int main()
{
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
handle_signal(SIGINT);
if (catch_signal(SIGINT, handle_interrupt) == -1){
fprintf(stderr, "Не могу подобрать обработчик");
exit(2);
}
char name[30];
printf("Введите свое имя:");
fgets(name, 30, stdin);
printf("Привет, %s\n", name);
return 0;
}
我需要一种在 Windows 平台下编译程序的方法,以便在 Linux 下运行它们,而不是在 Windows 下运行它们。你有什么想法我该怎么做?