gpt4 book ai didi

c++ - 如何从 qmake 定义类型?预包含头文件?

转载 作者:行者123 更新时间:2023-11-28 05:12:34 29 4
gpt4 key购买 nike

我正在重用 c 项目中的一些结构。该项目使用带有某些类型定义的自动/预包含 header 。这意味着没有调用:

#include "architecture.h"

在相关的源文件中。

我正在尝试通过从 qt pri 文件定义类型来解决这个问题:

DEFINES += int8_t="\"signed char\""
DEFINES += uint8_t="\"unsigned char\""
DEFINES += int16_t="\"signed int\""
DEFINES += uint16_t="\"unsigned int\""
DEFINES += int32_t="\"signed long int\""
DEFINES += uint32_t="\"unsigned long int\""

我收到编译器错误“重复签名”、“一个声明中有多种类型”、...

typedef vs define 中有一些关于类型和定义的内容.

是否有更好的方法来使用自动包含来解决这种情况?如何解决这个问题?

最佳答案

使用 DEFINES +- xyz_t="...."与 qt 的类型定义冲突包括系统头文件,如 <cstdint>由 Qt 对象使用。

gcc 兼容编译器(gcc,MinGW,clang)有选项 -include <file>强制预包含。

在 qmake 中,这可以被 QMAKE_CXXFLAGS 使用:

QMAKE_CXXFLAGS += -include path/to/file.h

在包含的 file.h 中我们可以包含其他系统类型定义 header ,例如:

#include <stdbool.h>
#include <cstddef>

通过这种方式可以很好且安全地定义类型。

关于c++ - 如何从 qmake 定义类型?预包含头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228541/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com