Tôi porting một ứng dụng từ Solaris sang Linuxcrt1.o: Trong chức năng '_start ': - tài liệu tham khảo không xác định cho `chính' trong Linux
Các tập tin đối tượng được liên kết không có một main() xác định. Nhưng biên dịch và liên kết được thực hiện đúng cách trong Solaris và thực thi được tạo ra. Trong Linux, tôi nhận được lỗi này
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
Vấn đề của tôi là, tôi không thể đưa tệp mới .c/.o kể từ khi ứng dụng lớn và chạy trong nhiều năm. Làm thế nào tôi có thể loại bỏ lỗi này?
extractes Mã của makefile:
RPCAPPN = api
LINK = cc
$(RPCAPPN)_server: $(RPCAPIOBJ)
$(LINK) -g $(RPCAPIOBJ) -o $(RPCAPPN)_server $(IDALIBS) $(LIBS) $(ORALIBS) $(COMMONLIB) $(LIBAPI) $(CCLIB) $(THREADLIB) $(DBSERVERLIB) $(ENCLIB)
Bạn có thể đăng các makefile và/hoặc các lệnh xây dựng thực tế không? –
Có .. Tôi đã thêm vài dòng từ makefile. – Blackforest
Đơn giản: bạn ngừng gọi chính hoặc bạn xác định chính (^) Tại sao nó hoạt động trên solaris? Nó có cờ liên kết đặc biệt không (liên kết đến đối tượng được chia sẻ?) – wildplasser