- 这个是比较棘手的,因为具体原因未知,可能性也多。
- 强烈建议:使用其他编译器编译一次,很可能可以得到错误原因!比如在windows环境,我们常用的是 vs自带的msvc,你可以尝试使用 mingw、clang;或者如果你的代码是支持跨端的,就可以复制项目到 linux/虚拟机 下用 gcc 编译看看。
- 下面我们来列举一些可能性。
头文件互相引用
- 比如说 A.h 里面 #include "B.h",然后 B.h 里面也 #include "A.h"
- 1: 第一个考虑的思路是把相关代码从 .h 迁移到 .cpp 中。
- 2: 如果是因为一些声明之类的导致了需要互相引用,用第一个方法迁移仍然是不行的。这时应当使用前置声明,然后移除 include 语句:
...
# include "B.h"
class A {
B* data_ptr = nullptr;
};
...
#include "A.h"
class B {
A* data_ptr = nullptr;
}
- 像上面这样的情况就可以在 A.h 中前置声明 class B; 然后直接删除 #include "B.h" 语句
- 这是在告诉编译器,有一个声明类叫做 B,如果在编译时遇到B这个符号就当成一个声明的类就好,然后等待后续的编译或链接再确定。因此就可以去除 #include "B.h" 语句,从而解决循环引用的问题。
...
class B;
class A {
B* data_ptr = nullptr;
};
变量访问权限定义有问题
- 最近遇到的就是这个,就是在给函数传参时,我写了这样一段代码:
#include <chrono>
void wow(std::chrono::seconds second) {
......
}
void hello(time_t num) {
wow(const std::chrono::seconds(num));
}
- 哈哈不知道你是否发现了问题,在hello() 里我们调用了wow(),但传参是创建变量时写了个const !!!就是这个导致了msvc编译失败了,我也是给gcc编译它才报出这个问题。
- 实际上还有类似于你在不当的位置使用了 类 的(protected/private)声明的变量或函数,或是static相关的一些访问权限问题。检查起来相当麻烦,所以最好还是放别的编译器跑一下看看。
Тут можно преобрести сейфы оружейные цена сейф для оружия цены
Cat Cazino Скачать на Андроид. https://www.pgyer.com/apk/apk/com.cat.c115546
Узнай все о варикоцеле яичка у мужчины варикоцеле яичка
Узнай все о варикоцеле яичка у мужчины признаки варикоцеле
Тут можно преобрести купить оружейный сейф цена купить сейф под карабин
Предлагаем услуги профессиональных инженеров офицальной мастерской.
Еслли вы искали сервисный центр xiaomi, можете посмотреть на сайте: официальный сервисный центр xiaomi
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Узнай все о варикоцеле диагностика варикоцеле яичка у мужчины
Узнай все о варикоцеле причины двустороннее варикоцеле
Предлагаем услуги профессиональных инженеров офицальной мастерской.
Еслли вы искали сервисный центр xiaomi в москве, можете посмотреть на сайте: официальный сервисный центр xiaomi
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Узнай все о варикоцеле причины лапароскопия варикоцеле
Тут можно преобрести купить оружейный сейф сейфы под оружие
Узнай все о двустороннее варикоцеле варикоцеле яичка
Узнай все о признаки варикоцеле варикоцеле левого яичка
Узнай все о заболевание варикоцеле клиника варикоцеле
Тут можно преобрести огнестойкий сейф купить сейф огнестойкий купить
Тут можно преобрести купить оружейный сейф цена оружейные сейфы для охотничьего ружья
Тут можно преобрести сейф противопожарный сейф огнестойкий
Тут можно преобрести сейф для оружия ружья оружейный сейф купить москва
Здесь можно преобрести сейфы сейф цена купить
Тут можно преобрести оружейный шкаф сейф для карабина
Тут можно преобрести сейф огнеупорный купить огнестойкие сейфы
Сервисный центр предлагает ремонт digma plane 8700b 3g цены ремонт digma plane 8700b 3g цены
Тут можно преобрести сейф огнестойкий сейф огнеупорный купить
Тут можно преобрести купить сейф под карабин сейф для охотничьего ружья
Тут можно преобрести огнестойкий сейф пожаростойкие сейфы
телега vavada поддержка
Перевозка умерших в морг
Тут можно преобрести сейф пожаростойкий сейфы огнестойкие
Тут можно преобрести купить сейф для ружья в интернет магазине купить оружейный шкаф
Тут можно преобрести купить сейф огнестойкий в москве сейф пожаростойкий
Сервисный центр предлагает ремонт canon digital ixus v2 цены ремонт canon digital ixus v2 цены
https://notperfect.ru/sovety/sluzhba-dezinfekczii-v-moskve-bezopasnost-i-chistota-vashej-zhizni.html
https://gkb12-nn.ru/kolonoskopiya.html
Тут можно преобрести купить противопожарный сейф огнестойкий сейф