在开发环境由VS2015 +Qt5.9.4 转 VS2022+Qt 6.6.1 ,移动FTP功能时,编译报错error "btye "c2872 不明确的符号错误。
百度有人说可以这样
也有人说这样
还有人说这样
多数人说的是第二种方法。估计那肯定是第二种方法好使。
于是我试了第一种方法,果然不好使;接下来试第二种方法,惊讶!!怎么也不好使,难道头文件包括的顺序不对,也测试了,效果一样。后来发现我代码的其他地方使用了using namespace std,于是把代码的其他地方都删除了,为什么以前加了这个呢,“using namespace std”的作用是将标准C++库中的所有标识符引入到当前的命名空间中。这使得程序可以直接使用标准C++库中的标识符,如`cout`、`vector`、`string`等,而无需在每个标识符前加上`std::`前缀。这样做可以简化代码,提高编程效率。但在Qt6.xx中std::byte 与现有byte类型冲突,所以得把工程中使用using namespace std的地方全部删除,在编译不过的`cout`、`vector`、`string`等标识符前加上`std::`前缀。当然优先试了第三种方法,一看就不好使。可能有其他原因吧,导致第一与第三种方法对于我来说不好使,不能否定别人。
再编译OK