Wpis z mikrobloga

Czolem wszystkim milujacym #cpp! ()

Zaczalem ostatnio dostosowywac swoja aplikacje pod system #windows i spotkala mnie niemala niespodzianka ()

Pisze sobie w sposob obiektowy tak, ze na kazda klase przysluguje jeden plik zrodlowy i jeden naglowkowy. Kiedy w pliku zrodlowym potrzebuje zaincludowac , nie ma problemu - wszystko dziala. Kiedy natomiast potrzebuje zaincludowac ten pliczek w pliku naglowkowym, pomimo korzystania z pragma once dostaje nastepujace komunikaty:

C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared\ws2def.h(103): warning C4005: 'AFIPX': macro redefinition

C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winsock.h(457): note: see previous definition of 'AFIPX'

C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared\ws2def.h(144): warning C4005: 'AFMAX': macro redefinition

C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winsock.h(476): note: see previous definition of 'AFMAX'

C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared\ws2def.h(187): warning C4005: 'SODONTLINGER': macro redefinition

C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winsock.h(399): note: see previous definition of 'SODONTLINGER'

C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared\ws2def.h(240): error C2011: 'sockaddr': 'struct' type redefinition


Przypuszczam, ze jest cos, czego po prostu nie wiem.

Co do kompilatora, to korzystam z tego zainstalowanego z Visual Studio :)

  • 9
ja w aplikacji nie laduje nic innego


@CppPolska: Na pewno? windows.h też jest objęty jakimś guardem i nie powinien gryźć się sam ze sobą. Może VS automatycznie coś includuje? Tutaj widać że gryzą się definicje z winsock i winsock2, więc gdzieś to chyba się zaciąga...
@grzegorzx86: projekt mam postawiony na CMake, do tej pory dzialalem tylko i wylacznie na Macu. Nie powinienem miec nigdzie zadnego miejsca, gdzie cos jest dodawane automagicznie. Sprawdze jeszcze zaleznosci, moze tam cos jest ( ʖ̯)