【发布时间】:2020-12-11 20:37:13
【问题描述】:
我正在使用 Qt Creator 和一个 qmake 项目。我有一个非常简单的问题:
#include <filesystem>
...
std::filesystem::path myPath;
在构建期间以及在 IDE 中,我收到错误消息“路径不可用:在 macOS 10.15 中引入”。
我可以使用 g++ 或 clang++ 手动编译(不使用 qmake)。
我的 qmake 项目文件有:
TEMPLATE = app
CONFIG += c++17
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
CONFIG += sdk_no_version_check
有魔法咒语吗?我什至不关心构建,因为这甚至不是 Qt 应用程序,而且我有一个手动生成的 Makefile。我只是不希望 IDE 对我大喊错误。
我可以在 StackOverflow 上找到关于链接问题的最接近的相关项目。尽管我尝试了各种建议的标志,但我什至在 Qt Creator 中都没有走那么远。
--
我正在做更多的挖掘工作。我正在手动编辑生成的 Makefile 并运行 make 并从 clang++ 中得到相同的错误。我试过g++。同样的错误。但通常我使用自己手动编写的 Makefile 进行构建,并且编译干净。
所以我查看了标志:
-mmacosx-version-min=10.13
在编译期间手动删除该错误(从命令行)。
所以,问题:
-
如何让 qmake 不将该标志放入生成的 Makefile 中?
-
如何让 linter 看不到该标志(我认为这就是它在 IDE 的代码编辑器部分内联显示的原因)?
【问题讨论】:
-
@scopchanov Qt Creator 是 4.13.3,基于 Qt 5.15.2。我看过那个答案。我没有make问题,而是IDE问题。我正在做 config += c++17 部分。
-
这两个都不是 Qt 的版本。无论如何,Qt Creator 标记这个是什么意思?您在哪里看到错误?
-
让我解释一下。 IDE 本身并不是一个工具。它是各种工具的 GUI。解决方案会有所不同,具体取决于抱怨的工具。因此,如果您在“问题”窗口中看到错误,那就是编译器。如果您在线看到错误 - 它是 linter(静态代码分析工具)。根据您分享的信息,我最好的选择是,您的编译器或 linter 不支持 C++17。
-
解决办法是把这个添加到.pro文件中:QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.15