Jag har ett program skrivit för Unix som jag ska köra under Linux. Jag kan kompilera allt med undantag för två filer som använder "extern int errno" vilket kompilatorn inte känner till. Jag kan rätta detta genom att lägga till #include <errno.h> i dessa två filer, men vi tycker inte om detta eftersom vi då måste ha två versioner av programmet och eftersom vi då måste ändra detta i varje ny version (som kommer ofta). Jag skulle hellre vilja ändra i Makefilen och jag undra om detta går, och hur man i så fall gör. >"extern int errno" vilket kompilatorn inte känner till Hur kan include-raden tvinga er att ha två versioner av programmet?använda errno utan att includera
Sv: använda errno utan att includera
Inte känner till? Ser ut som en helt giltig externdeklaration tycker jag.
Dock fungerar den inte i multitrådade applikationer eftersom man då behöver en errno per tråd.
Om din applikation är multitrådad finns det inget annat att göra än att ändra i filen eftersom det är ett fel.
Om din applikation inte är multitrådad så är det väl bara att kompilera utan multitrådstöd.
(I c++ skall man inkludera <cerrno> och inte <errno.h>)Sv: använda errno utan att includera