10

我想制作一个可以与 msvc 和 gcc 一起使用的项目文件。

例如,为了优化速度,你会做cl /O2g++ -O3.

但我不知道如何告诉项目文件有所作为。我想要类似的东西:

msvc:QMAKE_CXXFLAGS_RELEASE += /O2 /openmp /arch:AVX
else:QMAKE_CXXFLAGS_RELEASE += -O3 -march=native -fopenmp -D_GLIBCXX_PARALLEL

可悲的是,这不起作用。

其他方法是更改​​ mkspecs 并将新的 mkspecs 与我的应用程序捆绑在一起,但它不是很便携。谢谢 !

4

2 回答 2

13

Jean,准确地说,您应该根据您的描述使用它:

msvc:QMAKE_CXXFLAGS_RELEASE += /O2 /openmp /arch:AVX
gcc:QMAKE_CXXFLAGS_RELEASE += -O3 -march=native -fopenmp -D_GLIBCXX_PARALLEL
于 2013-08-23T21:21:40.947 回答
0

这是我一直在使用的项目文件。它适用于 Windows (msvc) 和 Linux (gcc)

QT = core gui widgets

HEADERS += \
    render.h

SOURCES += \
    main.cpp \
    render.cpp

QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE -= -O2

win32 { # For Windows
  QMAKE_CXXFLAGS += -openmp
  QMAKE_CXXFLAGS += -arch:AVX
  QMAKE_CXXFLAGS += -D "_CRT_SECURE_NO_WARNINGS"
  QMAKE_CXXFLAGS_RELEASE *= -O2
}

linux { # For Linux
  QMAKE_CXXFLAGS += -fopenmp
  QMAKE_LFLAGS += -fopenmp
  QMAKE_CXXFLAGS += -mavx
  QMAKE_CXXFLAGS_RELEASE *= -O3
}
于 2013-08-22T08:01:56.597 回答