Köszönöm a gcc hozzám való jószándékát

cc1: error: the "xcoff" debug format cannot be used with pre-compiled headers [-Werror=deprecated]

Ha lenne mikrofon a gépen, most belemondanám, hogy "kedves gcc, nem kértem precompiled headert, de ha már önkéntes jóságból csinálsz ilyet, legalább azt gyónd meg, hogy hogyan lehet letiltani!"

https://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html

Szerk: gcc version 5.4.0 (GCC) 

Talán az a bűnöm hergelte fel, hogy két source-file is volt a fordításban (és mindkettő használ header-fájlokat, még közös is van benne):

gcc -o exe source1.c source2.c

Hozzászólások

Szerkesztve: 2023. 11. 07., k – 11:07

Nem a GCC csinálta, annak külön mondani kell:

gcc -c akarmi.h -o akarmi.h.gch

Valamit leforgathattál, aminek a Makefile-ja/buildscriptje kiadott egy-két ilyen parancsot és most az include-jaid között van egy-két precompiled header, amit viszont már a GCC megtalál és azt használja. Le kell ezeket törölni:

find /usr/include -iname "*.h.gch"
find /usr/local/include -iname "*.h.gch"

Szükség esetén úgyis előállíthatóak.

Az meg leforgatta a headereket. Jobbik eset, csak a saját headerjeid precompiled példányait kell törölni (rm *.h.gch), nem kell a system-wide include-ban turkálni.

Sz*rk: Vagy nem leforgatta a headereket, hanem beforgatta a headereket a binárisba, mintha precompiled-ok lettek volna?

A headerek jelenléte a command-line-ban provokálta azt a működést, ami a precompiled-header-eknél szokás, de ténylegesen nem keletkezett semmilyen *.gch fájl. A javítás ilyen lett:


foo: foo1.c foo2.c foo.h
        gcc -o $@ $(filter %.c %.la,$^)

(a %.la (libtool archive) csak azért van, itt hogy emlékeztessen arra, hogy több maszkot is meg lehet adni)

Szerkesztve: 2023. 11. 07., k – 16:57

July 27, 2023

The GCC developers are pleased to announce the release of GCC 13.2.

-- amikor a topic nevéből tudom ki nyitotta