jestem przenoszenie aplikacji z Solaris do Linuksacrt1.o: In function `_start ': - niezdefiniowana odniesienia do` main' w Linuksie
Pliki obiektów, które są związane nie mają main() zdefiniowane. Ale kompilacja i łączenie odbywa się poprawnie w Solarisie i generowany jest plik wykonywalny. W Linuksie otrzymuję ten błąd
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
Moim problemem jest to, że nie może zawierać nowy .c/.o pliki od czasu jego ogromnej aplikacji i działa już od lat. Jak mogę pozbyć się tego błędu?
extractes kodowe makefile:
RPCAPPN = api
LINK = cc
$(RPCAPPN)_server: $(RPCAPIOBJ)
$(LINK) -g $(RPCAPIOBJ) -o $(RPCAPPN)_server $(IDALIBS) $(LIBS) $(ORALIBS) $(COMMONLIB) $(LIBAPI) $(CCLIB) $(THREADLIB) $(DBSERVERLIB) $(ENCLIB)
Czy możesz opublikować plik makefile i/lub rzeczywiste polecenia kompilacji? –
Tak ... Dodałem kilka linii z pliku Makefile. – Blackforest
Proste: albo przestajesz dzwonić do głównego, albo definiujĘ ... c główny (^) Dlaczego to działał na solaris? Czy ma specjalne flagi linkerów (link do obiektu współużytkowanego?) – wildplasser