2013-06-01 28 views
5

Sunucunun istemcilerden iletileri kabul ettiği ve ayrıntılarını yazdırdığı (atamam için kodlanmış) basit bir istemci sunucu programı yazdım. Bunu ilk önce bir Linux (Fedora) makinesinde yazmıştım ve gayet iyi çalışıyordu. Ancak, Mac'imde sunucu kodunu derlemeye çalıştığımda, işe yaramıyor.İstemci sunucu programı C

Undefined symbols for architecture x86_64: 
    "_error", referenced from: 
     _main in cc3O1167.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

kimse bu konuda bana yardımcı olabilir: Burada

derleme sonra mesajdır? Böyle derlemek için

deneyin:

+0

Bu konuda size yardımcı olmak gerçekten zor, muhtemelen Sembol'ün varlığına neden olan farklı bir standart C kitaplığı kullanıyorsunuzdur. -lc bayrağıyla ld çalıştırmayı öneririm. –

+0

Uyumluluk sorunlarınız var. Fedora 32bit'in mi? – ka2m

+0

Sorunu çoğaltmak için programınızı minimum düzeye indirin, sonra bu kodu buraya gönderin. Mac'im var, ancak kodsuz olarak size yardımcı olamam. –

cevap

0

Sizin error fonksiyonu, bildiriminden ancak bunun uygulanması da dahil olmak üzere ana dosyadan daha başka dosyada muhtemelen

g++ main.c -l<filetolink> 

filetolink adını olmak C - Undefined symbols for architecture x86_64 when compiling on Mac OSX Lion t birden fazla çözüm gibi görünmektedir: (uzantı olmaksızın) error fonksiyonunun uygulanmasını

Referans içeren dosya Bu işlevi kullanmayın,

These functions and variables are GNU extensions, and should not be 
    used in programs intended to be portable. 

Yani: "man 3 hata" Kimden

#ifdef __APPLE__ 
# define error printf 
#endif 
3

ana dosyasının en üstünde koy GNU olmayan sistemlerde çalışması gereken programlarda veya kendi değiştirmenizi sağlayın.

1

: İlk hata hattını googling zaman onun sorunu