- Remove From My Forums
-
Question
-
When I am recompiling a C++ project with Visual Studio 2017, which used to work well in Visual Studio 2015, the following error shows up.
1>c:program files (x86)microsoft visual studio2017communityvctoolsmsvc14.15.26726includestdint.h(17): error C2371: ‘CHAR’: redefinition; different basic types
1>c:program files (x86)windows kits10include10.0.17134.0umwinnt.h(431): note: see declaration of ‘CHAR’
1>c:program files (x86)microsoft visual studio2017communityvctoolsmsvc14.15.26726includestdint.h(23): error C2371: ‘DWORD’: redefinition; different basic types
1>c:program files (x86)windows kits10include10.0.17134.0sharedminwindef.h(156): note: see declaration of ‘DWORD’Some troubleshoot I’ve done before stuck by the above errors are (1) I try to compile this project with Visual Studio 2015, it shows Visual Studio error D8016: ‘/ZI’ and ‘/Gy’ command-line options are incompatible. I solve this by turn off /Gy. (2)
I try to use Visual Studio 2015 to compile this project, the above error remains; (3) I try to add $(UniversalCRT_IncludePath) in the additional include directories of the project setting, these error remains; (4) I try to use SDK windows 8.1 instead
of window 10.0, other errors show up like «stdio.h» cannot find.Thanks for your help or any suggestion and <g class=»gr_ gr_1424 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar only-ins doubleReplace replaceWithoutSep» data-gr-id=»1424″ id=»1424″>happy</g> new year of 2019
i have a Problem. I use Visual Studio 2013 and get the following Error:
Error C2371: 'getgrundflaeche' redefinition: different basic types.
I don’t know why i get this Error. I get the same Error with VS12, when i try to call the function getgrundflaeche()
.
Here is the Code:
#include <stdio.h>
#define PI 3.14159265359
int main(void){
double h = 0, d = 0, r = 0, G = 0, V = 0, M = 0, O = 0;
printf("Geometrie Zylinder:nBitte geben sie den Durchmesser d ein (cm): ");
scanf_s("%lf", &d);
printf("Bitte geben sie die Höhe h ein (cm): ");
scanf_s("%lf", &h);
r = d / 2;
G = getgrundflaeche(r);
/*V = get_volumen(r, h);
M = get_mantelflaeche(d, h);
O = get_oberflaeche(M, G); */
system("CLS");
printf("Eingaben:nDurchmesser d: %lf cmnHöhe h: %lf cm", d, h);
system("PAUSE");
return 0;
}
double getgrundflaeche(double r){
return (r*r);
}
/*
double get_volumen(double r, double h){
return r*r*h*PI;
}
double get_mantelflaeche(double d, double h){
return d*h*PI;
}
double get_oberflaeche(double M, double G){
return M+2*G;
}*/
I am beginner in using pthread header. I tried a sample of code in tutorial but it gave an error refer to TimLib.h library. I didn’t include this header but it seems this header called in pthread.h. I will appreciate if you can guide me.
#include <pthread.h>
#include <stdio.h>
#include <cstdlib>
#define NUM_THREADS 5
void* PrintHello(void* threadid)
{
long tid;
tid = (long)threadid;
printf("Hello World! It's me, thread #%ld!n", tid);
pthread_exit(NULL);
}
int main(int argc, char* argv[])
{
pthread_t threads[NUM_THREADS];
int rc;
long t;
for (t = 0; t < NUM_THREADS; t++) {
printf("In main: creating thread %ldn", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void*)t);
if (rc) {
printf("ERROR; return code from pthread_create() is %dn", rc);
exit(-1);
}
}
/* Last thing that main() should do */
pthread_exit(NULL);
}
Severity Code Description Project File Line Suppression State
Error C2371 ‘time_t’: redefinition; different basic types Project2 C:Program Files (x86)Microsoft Visual Studio2019EnterpriseVCToolsMSVC14.21.27702includeTimeLib.h 21
fryn3 3 / 3 / 1 Регистрация: 03.07.2013 Сообщений: 59 |
||||
1 |
||||
01.10.2015, 16:50. Показов 7194. Ответов 8 Метки нет (Все метки)
Разбираюсь в чужем проекте. Проект работал в Qt и возможно на Linux. Хочу запустить его в VS2015. От всех ошибок кроме одной смог избавиться. А это что то выше моего понимания.
Компилятор жалуется и выводит ошибку: Ошибка C2371 int32_t: переопределение; различные базовые типы MODEL_VS2015 c:program filesmicrosoft visual studio 14.0vcincludestdint.h В чем может быть ошибка и как ее решить? Миниатюры
0 |
267 / 170 / 40 Регистрация: 25.08.2014 Сообщений: 1,087 Записей в блоге: 1 |
|
01.10.2015, 17:37 |
2 |
Закомменти все строки с дублированием типов. Разумеется в этом блоке, а не в stdint.h.
1 |
3 / 3 / 1 Регистрация: 03.07.2013 Сообщений: 59 |
|
02.10.2015, 10:47 [ТС] |
3 |
Закомменти все строки с дублированием типов. Разумеется в этом блоке, а не в stdint.h. Пробовал. Появляются две ошибки ( см рис) Миниатюры
0 |
Модератор 13252 / 10392 / 6213 Регистрация: 18.12.2011 Сообщений: 27,798 |
|
02.10.2015, 10:53 |
4 |
Сообщение было отмечено fryn3 как решение РешениеТак это уж Вы забыли подключить файл с БПФ к проекту.
1 |
3 / 3 / 1 Регистрация: 03.07.2013 Сообщений: 59 |
|
02.10.2015, 11:13 [ТС] |
5 |
Нет, к сожалению не забыл. Все что можно включено. БПФ тоже.
0 |
Модератор 13252 / 10392 / 6213 Регистрация: 18.12.2011 Сообщений: 27,798 |
|
02.10.2015, 11:15 |
6 |
Сообщение было отмечено fryn3 как решение РешениеЕсли БПФ у Вас в виде исходника, то его нужно не просто положить в папку, а подключить к проекту аналогично файлу с main()
1 |
3 / 3 / 1 Регистрация: 03.07.2013 Сообщений: 59 |
|
02.10.2015, 11:35 [ТС] |
7 |
Он реализован в библиотеке и она подключена к проекту и ф-ции ее видны
0 |
Модератор 13252 / 10392 / 6213 Регистрация: 18.12.2011 Сообщений: 27,798 |
|
02.10.2015, 12:08 |
8 |
В настройках проекта «Проект->Свойства->Компоновка->Зависимости» добавили fft.lib?
0 |
3 / 3 / 1 Регистрация: 03.07.2013 Сообщений: 59 |
|
02.10.2015, 12:18 [ТС] |
9 |
Спасибо за помощь. Оказывается в fft.cpp отсутствовал fft_make(). ZSS — лучший=)
0 |
Я получаю эту ошибку «Ошибка C2371« DWORD »: переопределение; различные основные типы» при компиляции кода Visual C ++ в Visual Studio 2015 с использованием MFC.
Когда я дважды щелкаю по ошибке, я перехожу на stdint.h, строка 23:
typedef unsigned int uint32_t;
И если я нахожу какой-либо DWORD в своем коде и нажимаю на нем клавишу f12, он переводит меня в строку minwindef.h 156:
typedef unsigned long DWORD;
Я не включаю явно ни один из этих файлов, поэтому я не знаю, в каком порядке эти файлы включены.
Я совершенно заблудился здесь, что делать, чтобы исправить эту ошибку. У кого-нибудь есть ключ?
Если вам нужна дополнительная информация, пожалуйста, спросите меня.
-2
Решение
Я нашел ошибку, это было на 3partyapi.h:
#ifndef uint32_t
# define uint32_t DWORD
#endif
То, что я сделал, было просто включить #include <cstdint>
до #ifndef
и ошибка ушла.
Спасибо всем за помощь.
0
Другие решения
Других решений пока нет …