如何在 Qt .pro 文件中知道 visual studio 是否是编译器?

How to know in a Qt .pro file if visual studio is the compiler?

有没有办法知道 Visual Studio 是否是 .pro 文件中的编译器?

例如,有很多方法可以检测项目文件中的内容,包括 OS 或配置:

CONFIG(boost_asio) {
    DEFINES += BOOST_SOCKETS
    SOURCES += asiosocket.cpp
    LIBS += -L/usr/local/lib \
        -lboost_system
}

OTHER_FILES += 

contains(QT_VERSION, ^5\.[0-9]\..*) {
  SOURCES += wavreader.cpp
  HEADERS += wavreader.h
  QT += multimedia
}

include(../../Shared/Common.pri)

windows: { LIBS += -L$$bin -lzip-2 }
!windows: { LIBS += -lzip }

我想要的是为 mingw 和 boost 上的 boost 库提供一个正确的链接。但它们的名称如 boost_chrono-vc120-mt-1_58 取决于编译器。

有什么办法可以让我拥有类似的东西:

visualstudio {
   LIBS += -LC:/boost/libs -lboost_system-vc120-mt-1_58
}

一种方法是让用户在 qmake 的 CONFIG 参数中说明他正在使用哪个编译器,但我认为这不是最好的解决方案。

而不是 Visual Studio,您想检查是否正在使用 MSVC。看这里:

Qt .pro file: how to check if I'm compiling with MSVC 2013 toolset?

qmake: Test for current spec