SORU
10 HAZİRAN 2009, ÇARŞAMBA


uyarı: yerleşik işlevinin örtük bildirimi ‘xyz’uyumsuz

Birkaç ikili derlerken bu uyarılar bir dizi alıyorum:

warning: incompatible implicit declaration of built-in function ‘strcpy’
warning: incompatible implicit declaration of built-in function ‘strlen’
warning: incompatible implicit declaration of built-in function ‘exit’

Bu sorunu çözmek için denemek için ekledim

#include <stdlib.h>

aşağıdaki bayraklar ile derleme ek olarak C dosyaları bu uyarı ile ilişkili üstünde:

CFLAGS = -fno-builtin-exit -fno-builtin-strcat -fno-builtin-strncat -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-calloc

GCC 4.1.2 kullanıyorum:

$ gcc --version
gcc (GCC) 4.1.2 20080704

Ben bu uyarıları gidermek için ne yapmalıyım?

CEVAP
10 HAZİRAN 2009, ÇARŞAMBA


C, daha önce bildirilmemiş bir işlevi kullanarak işlevinin örtük bildirimi oluşturmaktadır. Örtülü bir bildiride, dönüş türü eğer doğru hatırlıyorsam int. Şimdi, GCC yerleşik bazı standart fonksiyonlar için tanımları var. Eğer örtülü bir beyan yerleşik tanımına uyuyor mu bu size bir uyarı olsun.

Sorunu düzeltmek için onları kullanmadan önce fonksiyonları var; normalde uygun başlığı da dahil olmak üzere. Mümkünse-fno-yerleşik-* bayraklar kullanmamanızı öneririm.

Stdlib yerine.h, denemelisiniz

#include <string.h>

strcpy strncpy en az strcpy(2) man sayfasına göre tanımlanır.

exit Bu işlev stdlib tanımlanır.h yine de, bu yüzden orada neler olup bittiğini bilmiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • emimusic

    emimusic

    10 Mart 2006
  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008