1

我正在尝试在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 下运行它们。你有什么想法我该怎么做?

4

0 回答 0