C a peklo updatov

Petr Labaj labaj na volny.cz
Pondělí Říjen 9 18:41:43 CEST 2023


To křičel překladač nebo linker?
Pokud překladač - nedalo se to poznat už z toho <string.h>?
Že by tam bylo něco jako "ifdef _GNU_SOURCE ...".
Pokud ano, tak by asi stačilo použít headery z toho původního kompilátoru.

PL

*********************

Dne 9.10.2023 v 18:19 Jan Waclawek napsal(a):
> Pred asi 8 rokmi som v jednom projekte pouzil kus C kodu ktory napisal
> ktosi iny, znalejsi nez ja; bola tam pouzita funkcia strcasestr(). To je z
> tych funkcii, ktore nie su v standarde, ale bezne su k prekladacom
> pribalene, pretoze su velmi uzitocne. Konkretne strcasestr() ma tu istu
> funkciu ako strstr() (t.j. hlada vyskyt pod-retazca v inom retazci, cize
> je to uzitocne pre parsery) a byva prototypovany v <string.h>.
>
> Teraz som z toho stareho projektu vykopiroval kus, pokusam sa prelozit, a
> prekladac krici, ze nevie, co je strcasestr(). Hm.
>
> Guglenie prezradilo
> https://stackoverflow.com/questions/9935642/how-do-i-use-strcasestr , ze
> treba pouzit _GNU_SOURCE - fajn, pouzil som podla navodu, prelozil,
> funguje.
>
> Ale pozeram do toho stareho projektu, a tam ziadny _GNU_SOURCE  nie je, a
> pritom sa da bez problemov prelozit.
>
> Najdi tri rozdiely.
>
> No, rozdiel je v prekladaci - na novsi projekt som pouzil novsi
> gcc/binutils/newlib. A vysvitlo, ze strcasestr() je "skryte" tym
> _GNU_SOURCE az od roku 2014, pricom starsi projekt som prekladal starsim
> prekladacom, z roku 2013...
>
> Takze updaty aj ineho nez Thunderbirdu vedia otravit cloveku den...
>
> wek


Další informace o konferenci Hw-list