作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在重用 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/
我是一名优秀的程序员,十分优秀!