【发布时间】:2013-08-22 04:38:08
【问题描述】:
我想制作一个可以同时使用 msvc 和 gcc 的项目文件。
例如,为了优化速度,您可以使用 cl /O2 和 g++ -O3。
但我不知道如何告诉项目文件有所作为。我想要类似的东西:
msvc:QMAKE_CXXFLAGS_RELEASE += /O2 /openmp /arch:AVX
else:QMAKE_CXXFLAGS_RELEASE += -O3 -march=native -fopenmp -D_GLIBCXX_PARALLEL
可悲的是,这不起作用。
另一种方法是更改 mkspecs 并将新的 mkspecs 与我的应用程序捆绑在一起,但它不是很便携。 谢谢!
【问题讨论】:
-
有什么问题?你说“它不起作用”是什么意思?
-
您是否尝试过像文档中描述的那样使用
win32和!win32之类的范围? qt-project.org/doc/qt-4.8/qmake-advanced-usage.html -
如果我在我的项目文件中添加我之前放置的代码,我仍然会有:
cl -O3 -march=native -fopenmp -D_GLIBCXX_PARALLEL而我想要cl /O2 /openmp /arch:AVX -
@Jean-MichaëlCelerier 奇怪。我刚刚制作了一个简单的 .pro 文件,其中包含您问题中的两行并添加了另一行:
message($${QMAKE_CXXFLAGS_RELEASE})。当我运行 qmake 时,我得到这个:Project MESSAGE: -O2 -MD /O2 /openmp /arch:AVX这很好,因为我的环境是 Win7 + MSVC2010。你的环境是什么? -
嗯。诡异的。我想我应该再运行 qmake 一到两次才能确定,因为现在它可以工作了。谢谢!
标签: c++ qt visual-c++ g++ qmake