Mingw a dělají proměnné

hlasů
2

Snažím se sestavit open source projekt, na oknech pod MinGW / MSYS.

Makefile obsahuje (mimo jiné) tento řádek

@${MAKE} --no-print-directory -C . -f physfs.make

physfs.make obsahuje (mimo jiné) těchto řádků:

ifndef CC
  CC = gcc
endif

Když jsem běžel, aby se dostanu následující chybu:

Creating obj/Debug/physfs
physfs.c
make[1]: cc: Command not found
make[1]: *** [obj/Debug/physfs/physfs.o] Error 127
make: *** [physfs] Error 2

Kdybych komentovat IFNDEF / ENDIF páru odcházející CC = gcc intaktní, stavební práce. Když místo make I tento příkaz:

make -e CC=gcc

sestavení funguje stejně. Ale když jsem běžet následující příkaz MSYS:

echo $CC

nic se nezobrazí.

Myslím, že tam je něco o tom, jak základní proměnné prostředí pracují v MSYS a dělat, že nerozumím.

Mohl by prosím pomoct, abych tento problém vyřešit, takže chápu , proč jednoduchý ‚make‘ command stěžuje a proč IFNDEF blok nefunguje, jak jsem se očekávat, že bude fungovat.

Položena 27/10/2010 v 02:18
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

CCje jedním z několika implicitních proměnných automaticky definovány v make relaci, takže linka ifndef CCby měla nikdy vyhodnotit na hodnotu true.

To vysvětluje, proč byste vidět nic na příkazovém řádku pro echo $CC. Prostředí MSYS nemá žádnou představu o CC.

Chcete-li zobrazit hodnotu proměnné zevnitř make relace můžete vždy použít informační funkce:

$(info $(CC))

To bude odrážet hodnotu CC proměnné konzole v okamžiku, kdy se hodnotí, že linka v makefile.

Odpovězeno 27/10/2010 v 02:26
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more