QT中实现条件编译

QT在跨平台中使用很常见,既要开发基于ubuntu,又要开发基于windows情况下,可以使用条件编译来区分平台.

步骤如下:

1. 在pro文件中添加 DEFINES

eg:

# use linux or windows
DEFINES += RUN_ON_LINUX

2.   在pro文件中区分需要添加的头文件和源文件

if(contains(DEFINES, RUN_ON_LINUX)){       // 必须写在同一行
    SOURCES += posix_qextserialport.cpp
    HEADERS += posix_qextserialport.h
}else{
    SOURCES += win_qextserialport.cpp
    HEADERS += win_qextserialport.h
}

3.在源文件和头文件中添加条件选项

#ifdef RUN_ON_LINUX
#include "posix_qextserialport.h"
#else
#include "win_qextserialport.h"
#endif

这样即可.

原文地址:https://www.cnblogs.com/rohens-hbg/p/14754356.html